私はWindowsサーバー2008 R2でいくつかのサイトを実行していますが、開発中は通常、このサーバーに更新を投稿します。今、私はアップデートを投稿しようとしましたが、それは失敗しました、それは使用中のファイルがあり、エラーメッセージは次のとおりです:
"The action can't be completed because the file is open in IIS Worker Process"
"Close the file and try again."
私はサイトを停止しようとしましたが、これは助けにはなりません。サイトはオンラインのままである必要があるサイトと同じアプリケーションプールで実行されているため、リサイクルによって実行中のサイトが壊れている可能性があります(これが間違っている場合は、修正してください)。
質問です:現在実行中の他のサイトを停止せずにファイルにかけられているロックを「解除」する方法はありますか?
どのメッセージからそのメッセージを受け取りますか?
アプリ自体(またはアプリフレームワーク)がアプリプール自体よりもファイルをロックしている可能性が高いようです。
将来的には、各サイトを独自のアプリプールで実行し、独自のアプリプールで他のアプリとは別に再起動する必要があるアプリも実行することを検討してください。
アプリプールは堅牢性の単位です。アプリ(またはASP.NetアプリのAppDomain)は、完全ではないが論理的に分離されたコンテナーです。
IISでWORKERを停止する必要があります。次に、ファイルを削除します。
タスクマネージャー->プロセスに移動してインターネットインフォメーションサービスを見つけるか、ワーカープロセスを見つけてタスクの終了を選択してください。
これで私の問題は解決しました。アプリケーションのビルド時にこのエラーが発生し、DLLのビルド時に再構築されるように、アプリDLLを削除しようとしました。削除すると、「iisワーカープロセスでファイルが開いているため、アクションを完了できません」というエラーが表示されました。