Windows-Server-2008-R2

無法完成該操作,因為該文件已在 IIS 工作程序中打開

  • June 21, 2020

我有一個 Windows Server 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。然後刪除文件。

引用自:https://serverfault.com/questions/393887