2011-09-09 7 views
0

WCFストリームを使用してファイルをダウンロードするようにユーザーに提供します。問題は、いったんファイルがダウンロードされると(FileStreamオブジェクトが作成されます)、そのファイルをFile.Delete()で削除することはできません。他の誰かによって使用されているということです。ダウンロード後のクライアント側ではストリームを閉じます。これを修正するには?WCFストリームはダウンロード後にファイルのロックを解除しません。

+0

サービスと契約はどのように定義されていますか? –

+0

クライアントサイドで、サービスプロキシオブジェクトを閉じたり、破棄したりしますか? –

+0

解決策は、FileStreamを "FileShare.Delete | FileShare.Read"に作成するときにFileShareパラメータを設定することです。 – mersadk

答えて

0

"FileShare.Delete | FileShare.Read"を使用するソリューションは、実際には回避策です(ファイルハンドルはまだ閉じられません)。私はあなたがストリームを含むMessageContractを使用すると思われる。その場合、実際にストリームを正しく処理するためには、少しだけ多くの作業を行う必要があります。この回答を参照してください。Stream as a return value in WCF - who disposes it?

関連する問題