WebDeploy with MSdeploy.exe无法同步GAC程序集,因为dll被另一个进程锁定

WebDeploy with MSdeploy.exe无法同步GAC程序集,因为dll被另一个进程锁定,gac,msdeploy,webdeploy,iisreset,Gac,Msdeploy,Webdeploy,Iisreset,我在使用msdeploy将GAC程序集同步到许多应用程序服务器时遇到了这个问题 当我运行这个命令时 msdeploy -verb:sync -source:gacAssembly="'MyAssembly'" -dest:gacAssembly,computername=DESTINATIONSERVER 我得到这个错误: *Microsoft.Web.Deployment.DeploymentException: (28/09/2010 16.46.37)在远程计算机上处理请求时出错。 --

我在使用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\U MSIL\MYASSEMBLY\1.0.0\UU a31fe99d2f98435c\MYASSEMBLY.dll”,因为其他进程正在使用它。 位于Microsoft.Web.Deployment.Win32Native.RaiseIOExceptionFromErrorCode(Win32ErrorCode errorCode,字符串maybeFullPath) 位于Microsoft.Web.Deployment.FileStreamEx.CreateInstance(字符串路径、文件模式、文件访问) 位于Microsoft.Web.Deployment.FilePathProvider.Add(DeploymentObject源,布尔whatIf) ---内部异常堆栈跟踪的结束--- ---内部异常堆栈跟踪的结束--- 位于Microsoft.Web.Deployment.DeploymentObject.Update(DeploymentObject源,DeploymentSyncContext syncContext) 位于Microsoft.Web.Deployment.DeploymentSyncContext.HandleUpdate(DeploymentObject destObject,DeploymentObject sourceObject) 位于Microsoft.Web.Deployment.DeploymentSyncContext.SyncDirPathChildren(DeploymentObject destRoot,DeploymentObject sourceRoot) 位于Microsoft.Web.Deployment.DeploymentSyncContext.SyncChildrenNoOrder(DeploymentObject dest,DeploymentObject源) 位于Microsoft.Web.Deployment.DeploymentSyncContext.SyncChildrenOrder(DeploymentObject dest,DeploymentObject源) 位于Microsoft.Web.Deployment.DeploymentSyncContext.ProcessSync(DeploymentObject destinationObject,DeploymentObject sourceObject)
位于Microsoft.Web.Deployment.DeploymentObject.SyncToInternal(DeploymentObject destObject、DeploymentSyncOptions、syncOptions、PayloadTable、PayloadTable、Conten Trottable内容(根表) 在Microsoft.Web.Deployment.DeploymentAgent.HandleSync(DeploymentAgentWorkerR equest WORKERREST) ---内部异常堆栈跟踪的结束--- 在Microsoft.Web.Deployment.StatusThreadHandler.CheckForException()中 位于Microsoft.Web.Deployment.AgentClientProvider.RemoteDestSync(DeploymentObje ct sourceObject,DeploymentSyncContext(同步上下文) 位于Microsoft.Web.Deployment.DeploymentObject.SyncToInternal(DeploymentObject destObject、DeploymentSyncOptions、syncOptions、PayloadTable、PayloadTable、Conten Trottable内容(根表) 位于Microsoft.Web.Deployment.DeploymentObject.SyncTo(DeploymentProviderOptions providerOptions、DeploymentBaseOptions baseOptions、DeploymentSyncOptions syncO (可选) 在MSDeploy.MSDeploy.ExecuteWorker()上 错误计数:1*

如果我在DESTINATIONSERVER上执行IISRESET,则不会发生错误

我的问题是:

是否可以在不执行IISRESET命令的情况下解锁DLL

我想我可以避免重新启动整个Web服务器。

你能帮我吗

非常感谢


致以最诚挚的问候。

使用recyleApp提供程序停止和启动应用程序池怎么样

msdeploy.exe-动词:sync-来源:recycleApp-dest:recycleApp=“默认网站”,recycleMode=“stopppool”,computerName=远程计算机

。。。做你真正的部署

msdeploy.exe-动词:sync-来源:recycleApp-dest:recycleApp=“默认网站”,recycleMode=“startappool”,computerName=远程计算机