C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: FTP処理において


(過去ログ 15 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■5539 / inTopicNo.1)  FTP処理において
  
□投稿者/ 必死 (1回)-(2007/07/17(Tue) 19:09:40)

分類:[C#] 

開発環境:VS2005
言語  :C#

指定されたファイルを監視し、監視しているファイルが更新されたらこのファイルを
FTPでリモートのFTPサーバーに転送するアプリケーションを作成しております。
FTP処理の流れとしては、
サーバーに接続、チェンジディレクトリ、転送モードをAsciiに変更、動作モードをPortに変更、ファイルPUT、サーバとの接続を切断、といった流れです。

ここで、FTPで困った現象に陥っており、原因が特定できずに悩んでおります。

☆環境
FTPクライアント:WindowsXP SP2
FTPサーバー:MiracleLinux ProFTPD Ver 1.2.9

☆現象
FTPのクローズ処理において
サーバーに対して"QUIT"コマンドを投げ、サーバー側からの
レスポンスを受信する処理を行っております。
この時、※ごくまれにサーバー側からのレスポンスが0を受信してしまうことがあります。
※5秒に一度、接続、PUT、切断を繰り返し、2、3時間に一度発生。


サーバー側のセッションログを見ても、この現象が発生している箇所と
通常の動作をしている箇所でまったく同じログになっており
"QUIT 221"を投げていました。
しかし、クライアントでの受信は0になってしまいます。



ちなみに、クライアントでFireWallを有効にしていると
この現象が発生します。FireWallを無効にするとこの現象が発生しません。

FireWallがこの現象にかかわっている気がするのですが、
ごくたまに発生する原因がわかりません。

どなたか、ご教授ください。よろしくお願い致します。








引用返信 編集キー/
■5541 / inTopicNo.2)  Re[1]: FTP処理において
□投稿者/ オショウ (11回)-(2007/07/17(Tue) 20:52:56)
> サーバー側のセッションログを見ても、この現象が発生している箇所と
> 通常の動作をしている箇所でまったく同じログになっており
> "QUIT 221"を投げていました。
> しかし、クライアントでの受信は0になってしまいます。
>
> ちなみに、クライアントでFireWallを有効にしていると
> この現象が発生します。FireWallを無効にするとこの現象が発生しません。
>
> FireWallがこの現象にかかわっている気がするのですが、
> ごくたまに発生する原因がわかりません。
>
> どなたか、ご教授ください。よろしくお願い致します。

  あくまで推測ですが、FireWallが有効の場合、パケットをモニターされていますので
  時間的遅延があります。

  それと、"QUIT 221"を投げ終わるまでに受信ルーチンを抜けるようなことになってい
  ませんか?タイムアウトが短かった場合や、Close処理なので、そこまでキチっと面
  倒見ていないとか。

  高速な場合、サーバー側に接続のセッションが破棄されず残ってしまうような場合は
  各コンマンド間に少しウェイトを入れてやることで、正常化されやすいですが、今回
  のケースは、サーバー側が送信しようとしているのにクライアン側が先に抜けてしま
  っているように思います。

  その辺、再度、デバッグしてみて下さい。

以上。
引用返信 編集キー/
■5604 / inTopicNo.3)  Re[1]: FTP処理において
□投稿者/ れい (8回)-(2007/07/18(Wed) 23:17:09)
No5539 (必死 さん) に返信
> ちなみに、クライアントでFireWallを有効にしていると
> この現象が発生します。FireWallを無効にするとこの現象が発生しません。

参考になるかわかりませんが。

昔、XPのファイアーウォールの振る舞いで困ったことがあります。
FINパケットを受信すると、他のパケットを受信せずに切断してしまうことがあるという問題で、
発生すれば同じような現象になるかと思います。

XPの問題なのか他の問題なのか、
他の環境でも発生するかなど、
そういったことは全くわかりません。(すみません。

パケットの順序が変わることがあまりないのと、
切断時というのがそもそもレアということから、
発生頻度が低く危険度の低い問題ということにして、
詳しく調べませんでした。

もしかしたら同じかもしれません。

>※5秒に一度、接続、PUT、切断を繰り返し、2、3時間に一度発生。

2000回に1回くらいですか。
上記問題は5000回に1回くらいだった気がします。
ネットワーク距離を増やすと結構かわりました。

(私のVistaは2〜3時間に1回再起動なのでそれにくらべると)
問題ないくらいだと思いますが…。

引用返信 編集キー/
■5659 / inTopicNo.4)  Re[2]: FTP処理において
□投稿者/ 必死 (2回)-(2007/07/19(Thu) 17:39:36)
オショウさん、れいさん
ありがとうございます。

ようやく解決の糸口をみぃだしました。
やはり firewallが原因のようです。

マイクロソフトのサポートページ外国版にのっていました。
http://support.microsoft.com/kb/900902/ja

firewallを無効にすれば、問題は解決できるのですが
今回は、FTPサーバとの切断時のエラーは、エラーとしない
回避策で対処いたします。


firewallは以外にやっかいですね。。

この現象以外にも、ポートモードでFTPを
実行した場合、firewallを有効にした場合、1024,1025番ポート
では、FTPサーバに接続できない現象もおきていました。
この現象もサポートページにのっておりましたが。。

firewallを有効にしていることで、1024,1025番ポートを使用するとFTPホストが無効な port コマンドを受信するって・・・。

http://support.microsoft.com/kb/911162/ja

ありがとうございました。


解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -