解決済み

FtpWebRequestでエラーになってしまう

  • 困ってます
  • 質問No.8937879
  • 閲覧数3210
  • ありがとう数1
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 100% (1/1)

お世話になっております。
当方C#初心者でございます。

現在、FTPSを使用しファイルダウンロードを行うクライアントアプリの作成を
FtpWebRequest、FtpWebResponseを用いて行っております。

#以下を参考にし、作成させて頂いております。
http://dobon.net/vb/dotnet/internet/ftpwebrequest.html#section1
http://blogs.gine.jp/taka/archives/1377

ですが、FtpWebRequest.GetResponse()のところでエラーが発生し原因を突き止められておりません。
また、ポートを21、990とした際にエラー内容も変わっており、余計原因究明が困難となっております。。

解決にご助力願えますでしょうか。

以下ソースと、トレース結果となります。

-----------------------------------------
ServicePointManager.ServerCertificateValidationCallback =
new RemoteCertificateValidationCallback(
delegate(Object certsender, X509Certificate certificate,
X509Chain chain, SslPolicyErrors sslPolicyErrors) { return true; });

FtpWebRequest ftpReq = (FtpWebRequest)WebRequest.Create("ftp://192.168.1.111:21/%2fhome/ftp_test/hogehoge.jpg");
ftpReq.Credentials = new NetworkCredential("test_user", "test_pass");
ftpReq.Method = WebRequestMethods.Ftp.GetFileSize;
ftpReq.KeepAlive = false;
ftpReq.EnableSsl = true;

FtpWebResponse ftpRes = (FtpWebResponse)ftpReq.GetResponse(); <- ここでExceptionが発生してしまう
Console.WriteLine(ftpRes.ContentLength);
textBox1.Text += ftpRes.ContentLength;
-----------------------------------------
Port:21
System.Net Verbose: 0 : [4936] Exiting FtpWebRequest#33736294::GetResponse()
System.Net Verbose: 0 : [5252] WebRequest::Create(ftp://192.168.1.111:21/%2fhome/ftp_test/hogehoge.jpg)
System.Net Information: 0 : [5252] FtpWebRequest#33736294::.ctor(ftp://192.168.1.111:21/%2fhome/ftp_test/hogehoge.jpg)
System.Net Verbose: 0 : [5252] Exiting WebRequest::Create() -> FtpWebRequest#33736294
System.Net Verbose: 0 : [5252] FtpWebRequest#33736294::GetResponse()
System.Net Information: 0 : [5252] FtpWebRequest#33736294::GetResponse(メソッド = SIZE。)
System.Net Information: 0 : [5252] Associating FtpWebRequest#33736294 with FtpControlStream#35191196
System.Net Information: 0 : [5252] FtpWebRequest#33736294::(FTP connection#35191196 を解放しています。)
System.Net Information: 0 : [5252] Associating FtpWebRequest#33736294 with FtpControlStream#48285313
System.Net Information: 0 : [5252] FtpWebRequest#33736294::(FTP connection#48285313 を解放しています。)
System.Net Error: 0 : [5252] Exception in the FtpWebRequest#33736294::GetResponse - 基礎になる接続が閉じられました: 受信時に予期しないエラーが発生しました
System.Net Error: 0 : [5252] 場所 System.Net.FtpWebRequest.SyncRequestCallback(Object obj)
場所 System.Net.FtpWebRequest.RequestCallback(Object obj)
場所 System.Net.CommandStream.InvokeRequestCallback(Object obj)
場所 System.Net.CommandStream.Abort(Exception e)
場所 System.Net.FtpWebRequest.FinishRequestStage(RequestStage stage)
場所 System.Net.FtpWebRequest.GetResponse()
System.Net Verbose: 0 : [5252] Exiting FtpWebRequest#33736294::GetResponse()
------------------------------------------
Port:990
System.Net Verbose: 0 : [3804] Exiting FtpWebRequest#33736294::GetResponse()
System.Net Verbose: 0 : [2416] WebRequest::Create(ftp://192.168.1.111:21/%2fhome/ftp_test/hogehoge.jpg)
System.Net Information: 0 : [2416] FtpWebRequest#33736294::.ctor(ftp://192.168.1.111:21/%2fhome/ftp_test/hogehoge.jpg)
System.Net Verbose: 0 : [2416] Exiting WebRequest::Create() -> FtpWebRequest#33736294
System.Net Verbose: 0 : [2416] FtpWebRequest#33736294::GetResponse()
System.Net Information: 0 : [2416] FtpWebRequest#33736294::GetResponse(メソッド = SIZE。)
System.Net Information: 0 : [2416] Associating FtpWebRequest#33736294 with FtpControlStream#35191196
System.Net Information: 0 : [2416] FtpWebRequest#33736294::(FTP connection#35191196 を解放しています。)
System.Net Error: 0 : [2416] Exception in the FtpWebRequest#33736294::GetResponse - 基礎になる接続が閉じられました:

ご教示、ご指摘のほど、よろしくお願いいたします。

質問者が選んだベストアンサー

  • 回答No.1

ベストアンサー率 44% (363/813)

一般的な話ですが
FTPの解説ではコマンドに対して必ず応答が有るとされていますが、
FTPサーバによっては、こちらからのコマンドに対して(一部のコマンドに対して)応答を返さない設定になっているものが有ります。
実際にどんな応答が返っているのかは、telnetでつないでみて確認する必要が有ります。
補足コメント
sasakama_result

お礼率 100% (1/1)

ありがとうございます。
他アプリで確認したところ、接続は出来ており、アップダウンは行えておりました。
また、コマンドの返却もされているようです。

今回作成しているアプリでは、サーバ側にログが出ておらず
そもそも、接続が出来ていないような気がしております。

ソース等の不備になりますでしょうか?
投稿日時 - 2015-03-19 12:50:20
お礼コメント
sasakama_result

お礼率 100% (1/1)

こちら、FtpWebRequestでの実装が難しいようでしたので、TcpClientを用い実装とさせていただきました。
ご回答ありがとうございました。
投稿日時 - 2015-03-24 20:18:46
結果を報告する
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。
関連するQ&A
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する

ピックアップ

ページ先頭へ