2011-06-23 12 views
0

私のプロジェクトでは、FTPWebRequestクラスを使用してPDFファイルをアップロードしています。 Fileをアップロードするには、(FtpWebRequest)WebRequestのオブジェクトからGetRequestStream()を取得して、Writeメソッドを使用しています。FtpWebRequestはアップロード直後にファイルを読み込みますアクセス拒否エラー

ファイルをアップロードした後、ファイルを読み込んで長さ(ファイルのサイズ)を取得します。我々は同じのためにFtpWebResponseの GetResponseStreamメソッドを使用しています。

ファイルサイズが小さくても、重いファイルがアップロードされると、すべての作業が罰金となり、アクセスが拒否されたため '550'エラーが発生します。

大きなファイルがFTPに書き込まれているときに、ストリームを閉じた後すぐにファイルを読み込むと、アクセス拒否の問題が発生する可能性があります。FTPサーバーはファイルからロックを削除していません。ストリームからファイルを書き込んでいます。

どのようにしてこの問題を解決できますか。ファイルをアップロードするのに使用されているストリームを閉じているときに、FTPサーバにファイルが正常に書き込まれたことを確認するためのイベントまたは方法がありますか?

答えて

0

一般的に、それはあなたが32 K

に設定することができます64 Kで、この問題はFTPサーバ上の低へのバッファサイズを設定し

  1. を解決するために私を助けた理由が、次の手順で、私は知りませんが

  2. チャンクをサーバーに送信するのではなく、ストリームを1つ送信します。これは、送信時にデータがバッファに保存されるため、ファイルを読み取る要求を出したときにエラーが表示されるためです。