C# の FTP で認証エラー
ちょっと前に、自分で書いた C# のアプリで FTP の送り先を変えたのだけど、それから散発的に FTP のエラーが発生して悩んでた。
で、検索してみたら、こんなのが。
FTP受信中にエラー - Insider.NET
おそらくは認証の問題です。
接続先サーバーもネットワーク構成もわかりませんので、
確実にこれで治ります、とは言えませんが、
少なくともNetworkCredentialの使い方が間違っています。
(中略)
ループ開始時にNetworkCredentialインスタンスを一つ作成し、
それをすべてのFTPWebRequestで共有するようにするのが正しい方法です。
え゛ーーー。これ本当なのかなぁ。自分の場合、転送部分を1個のクラスにしてて、その外側でループさせてるから、Credential の共有が大変なんだけど。コンストラクタ書き換えるのとか嫌だし。
つーことで、NetworkCredential をクラスの static メンバにして、null な時(事実上初回)だけ初期化するように変更。コードが汚くて嫌すぎるんだけど。。。まあ仕方ないのかな。
つーか、なんで以前は問題起こらなかったんだろ?謎です。