C# FTPでException「状態の応答 (DataAlreadyOpen) は 'QUIT' コマンドへの応答に予期されていません。」が発生

  • 2017.11.02 Thursday
  • 15:46

 

こちらのページを参考にして、

C#でSystem.Net.FtpWebRequestを使ってファイルアップロード処理を行っていた際、

正常にアップロードが完了する場合と、Exceptionが発生する場合があることがあり調査してみました。

発生するExceptionメッセージは

『状態の応答 (DataAlreadyOpen) は 'QUIT
' コマンドへの応答に予期されていません。』

 

原因はFTPパスワードの末に改行コードが付随していたこと。

FTPユーザやパスワードを別ファイルから読み込む際、改行コード込みで読み込んでいたらしく上記エラー発生ということでした。

 

コマンドで考えたら納得なのですが、プログラムソースだけ追いかけていてもなかなか気づかない事象なので、備忘録として記載。

 

 

 

C#実践開発手法読書会 vol.18 大阪 に参加してきました

  • 2016.05.17 Tuesday
  • 04:28
C#実践開発手法読書会 vol.18 大阪(https://cs-reading.doorkeeper.jp/events/44202/)に参加してきました。

今回は11.4から11章末まで。


■AJAJ
AJAJ(asynchronous JavaScript and JSON)は、AjaxのJSON版の名称。
調べてみたけど読み方が判らない。アジャジャだろうか。



■インタフェース1つ、実装1つの場合でのコードの臭いとは何か? 
読書会範囲から外れるが「9.2.4 設定より規約」に記載されていた

実際には、インターフェースの実装が一つだけであるとしたら、それ自体がコードの臭いです。

について、議論がおきました。
一見すると何がコードの臭いと示されているのか、判りづらいです。
個人的には、@yanosen_jpさんが示された内容が一番しっくりきました。

「恐らく、抽象化(もしくは要約)が足りていないまたは間違えている可能性への危険信号なのではないだろうか。例えば、犬、猫、鳥などのインタフェースを用意するのに、犬インタフェース、猫インターフェースを用意してしまっているのではないか? 
動物インターフェースという抽象化へ至れていないという警告なのではないだろうか」


なるほど、こらならば確かに、コードの臭いがしてくると思いました。

VisualStudio2013からGithubへPushする方法

  • 2013.12.12 Thursday
  • 06:45

VisualStudio2013から、標準機能だけで、Githubと連携する事が可能になりました。
その方法に簡単にまとめてみました。

C#にて、別スレッドから新規Formを表示させる際のお作法について メモメモ

  • 2013.10.31 Thursday
  • 11:54

メインのThread以外から、新規にFormの描画やUI制御などを行うと、例外エラーが発生します。
その為のお作法があるのですが、良く忘れて都度ググってしまうので、自分メモとして記載しておきます。

Visual Studio勉強会に参加してきました

  • 2013.03.10 Sunday
  • 09:24
 
2013/03/09(金)Visual Studio勉強会に参加してきました。
VS2012を色々いじくっているタイミングでもあり、大変面白い内容でした。

人がいなければLTしますよと話していたのですが、結局6名もの方がLTするという大盛況となりました。
これでしたら、TFSなんて初心者に馴染みが薄いので外した方がよかったかもしれませんね(汗

■資料:TFSいつはじめるの?今でしょう。

Enumに設定したDescription属性を取得する方法

  • 2013.01.29 Tuesday
  • 18:37
 
今まで、Enum使うときはswitch文などでEnum毎に文字列などを返していましたが、
Description属性に記載した文字列なら一発でとれるのですね。知りませんでした。
便利だったので忘れないうちにメモメモ。


64BitWindowsにサービスアプリをインストールする際の注意点

  • 2012.08.16 Thursday
  • 17:10
普通にWindowsサービスアプリを作って、64Bit環境のWindowsマシンにinstallutil.exeでインストールしようとしてもエラーが出てインストールがこけてしまいます。

//ここから

C:¥Program Files (x86)¥Microsoft Visual Studio 10.0¥VC>installutil "service.exe"

Microsoft(R) .NET Framework Installation utility Version 4.0.30319.1
Copyright (c) Microsoft Corporation.  All rights reserved.

インストールを初期化中に例外が発生しました:
System.BadImageFormatException: ファイルまたはアセンブリ 'service.exe'、またはその依存関係の 1 つが
読み込めませんでした。間違ったフォーマットのプログラムを読み込もうとしました。

//ここまで

これはビルドする際に、プラットフォームターゲットを「Any CPU」または「x64」にしなかったのが原因。

変更方法は
「プロジェクト」→「○○(プロジェクト名)のプロパティ」→「ビルド」
プラットフォームターゲットの設定箇所



Parallel中にUIコントロールのInvokeを操作したい場合

  • 2012.08.01 Wednesday
  • 14:31
 
通常Parallel処理中にUIのInvokeを行おうとすると、
お互いが処理待ちになるデッドロック状態となります。

そこで見つけたのがこのページ

ようはSystem.Threading.Tasks.Task.Factory.StartNewで
parallel自体を別threadにしてしまえばいいというやり方。

var task=System.Threading.Tasks.Task.Factory.StartNew(() =>
{
    Parallel.ForEach(hogeList, (n) =>
    {
    //control.Invokeを伴う処理
    });
});
task.Wait();



ただし、
データとタスクの並列化における注意点

に記載されているとおり、「UI スレッドでの並列ループの実行は避ける 」のが
ただしいのでしょうね。

[C#][Linq] ListからIndex値Dictionaryを作成

  • 2012.07.15 Sunday
  • 17:49
C#のLinqにて、Listからナンバーリング(行番号)を取得します。
これは汎用性が高く、OrderByやら、何やらでも使用できます。
Linq最高!

PR

calendar

S M T W T F S
     12
3456789
10111213141516
17181920212223
24252627282930
31      
<< December 2017 >>

selected entries

categories

archives

recommend

カンバン仕事術
カンバン仕事術 (JUGEMレビュー »)
Marcus Hammarberg,Joakim Sundén

recommend

recommend

profile

search this site.

others

mobile

qrcode

powered

無料ブログ作成サービス JUGEM