2011-07-19 3 views
2

私はこのようなサーバー上のファイルを保存していSWFUploadの経由でアップロードされたファイルを保存するハンドラとして使用するのaspx Webページを持っている:ファイルはHttpPostedFile名前を付けて保存した後にロックされている(LocationOnServer)

HttpPostedFile uploadedFile = Request.Files["Filedata"]; 
uploadedFile.SaveAs(LocationOnServer); 

問題は後のことですIISを再起動するまで、ファイルがロックされた状態(w3wp.exeで)のファイルを保存します。 保存後にファイルを解放する方法はありますか? ありがとう

答えて

3

私は過去に同じ状況に対処しました。ドメインアカウントでアプリケーションプールを実行する必要があります。つまり、Webアプリケーションを実行しているアプリケーションプールは、ドメインユーザーとして実行するように設定する必要があります。同じドメインユーザーに、アップロードしようとしているフォルダへのアクセス許可を与える必要があります。ドメインユーザーをアプリケーションプールに割り当てるには、IISのアプリケーションプールノードから適切なプールを選択し、右クリックして[プロパティ]を選択します。プロパティダイアログボックスでIDタブを選択し、「設定可能」を選択してドメインアカウントを入力します。次に、あなたのフォルダの同じユーザーに権限を与える必要があります。

+0

私はこれを使用したトリックをありがとう:http://learn.iis.net/page.aspx/624/application-pool-identities/ – kleinohad

1

ドキュメントは見つかりませんが、HttpPostedFileオブジェクトを処分する必要があります。たいていの場合、ファイルがロックされていれば、そのファイルに関連付けられているオブジェクトは適切に処理されていません。

0

サーバーのフォルダのアクセス許可を確認します。私はアプリケーションがファイルを作成することができたがそれに書き込むことができなかった同様の問題を抱えていたため、ロックアップしてしまった。

0

Finalize()を呼び出してみましたか?ファイルを取得しようとしているウイルス対策ソフトウェアやバックアップソフトウェアはありますか?

私は、あなたがまだそのフォルダへのアクセス許可を持っていなかった場合、最初にファイルを書き込むことができなかったので、アクセス許可が問題ではないと思います。