簡體   English   中英

使用MSdeploy.exe的WebDeploy無法同步GAC程序集,因為dll被另一個進程鎖定

[英]WebDeploy with MSdeploy.exe fails to sync GAC Assembly because dll(s) locked by another process

我在使用msdeploy將GAC程序集同步到許多應用程序服務器時遇到了這個問題。

當我運行此命令

msdeploy -verb:sync -source:gacAssembly="'MyAssembly'" -dest:gacAssembly,computername=DESTINATIONSERVER

我得到了這個錯誤:

* Microsoft.Web.Deployment.DeploymentException:(28/09/2010 16.46.37)在遠程計算機上處​​理請求時發生錯誤。 ---> Microsoft.Web.Deployment.DeploymentClientServerException:處理“ INPS.DNA.dll”時遇到錯誤。 ---> Microsoft.Web.Deployment.DeploymentException:錯誤代碼為0x80070020。 ---> System.IO.IOException:該進程無法訪問“ C:\\ Windows \\ assembly \\ GAC_MSIL \\ MYASSEMBLY \\ 1.0.0.0__a31fe99d2f98435c \\ MYASSEMBLY.dll”,因為該進程正在被另一個進程使用。 在Microsoft.Web.Deployment.FilePathProvider.Add(Microsoft.Web.Deployment.Win32Native.RaiseIOExceptionFromErrorCode(Win32ErrorCode errorCode,String mayFullPath)在Microsoft.Web.Deployment.FileStreamEx.CreateInstance(String path,FileMode fileMode,FileAccess fileAccess)在,布爾值whatIf)---內部異常堆棧跟蹤的末尾--- ---內部異常堆棧跟蹤的末尾--- Microsoft.Web.Microsoft.Web.Deployment.DeploymentObject.Update(DeploymentObject source,DeploymentSyncContext syncContext)。 Microsoft.Web.Deployment.DeploymentSyncContext.SyncDirPathChildren(Microsoft.Web.Deployment.DeploymentSyncContext.SyncChildrenNoOrder(DeploymentObject dest,DeploymentObject源))上的Deployment.DeploymentSyncContext.HandleUpdate(DeploymentObject destObject,DeploymentObject sourceObject) .Deployment.DeploymentSyncContext.SyncChildrenOrder(DeploymentObject dest,DeploymentObject源)a t Microsoft.Web.Deployment.DeploymentSyncContext.ProcessSync(DeploymentObject destinationObject,DeploymentObject sourceObject)
Microsoft.Web.Deployment.DeploymentAgent.HandleSync(DeploymentAgentWorkerR equest workerRequest)上的Microsoft.Web.Deployment.DeploymentObject.SyncToInternal(DeploymentObject destObject,DeploymentSyncOptions syncOptions,PayloadTablepayloadTable,Conten tRootTable contentRootTable)-內部異常堆棧跟蹤的結尾- -在Microsoft.Web.Deployment.DeploymentObject.SyncToInternal(DeploymentObject destObject,DeploymentSyncOptions syncOptions,PayloadTablepayloadTable,Microsoft.Web.Deployment.AgentClientProvider.RemoteDestSync(DeploymentObje ct sourceObject,DeploymentSyncContext syncContext)處,位於Microsoft.Web.Deployment.DeploymentObject.SyncTo(DeploymentProviderOptions providerOptions,DeploymentBaseOptions baseOptions,DeploymentSyncOptions syncO ptions)上的tRootTable contentRootTable),位於MSDeploy.MSDeploy.ExecuteWorker()的錯誤計數:1. *

如果我在DESTINATIONSERVER上執行IISRESET ,則不會發生該錯誤!

我的問題是:

是否可以在不執行IISRESET命令的情況下解鎖DLL?

我想我可以避免重新啟動整個Web服務器。

你能幫助我嗎'

非常感謝!

最好的祝福。

使用recyleApp提供程序停止和啟動應用程序池該怎么辦?

msdeploy.exe -verb:sync -source:recycleApp -dest:recycleApp="Default Web Site",recycleMode="StopAppPool",computerName=remote-computer

...進行真正的部署...

msdeploy.exe -verb:sync -source:recycleApp -dest:recycleApp="Default Web Site",recycleMode="StartAppPool",computerName=remote-computer

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM