У меня проблема с использованием 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.Win32Native.RaiseIOExceptionFromErrorCode (Win32ErrorCode errorCode, String MaybeFullPath)
в Microsoft.Web.Deployment.FileStreamEx.CreateInstance (путь строки, FileMode fileMode, FileAccess fileAccess)
в 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
tRootTable contentRootTable)
в Microsoft.Web.Deployment.DeploymentAgent.HandleSync (DeploymentAgentWorkerR
equest workerRequest)
--- Конец внутренней трассировки стека исключений ---
в Microsoft.Web.Deployment.StatusThreadHandler.CheckForException ()
в Microsoft.Web.Deployment.AgentClientProvider.RemoteDestSync (DeploymentObje
ct sourceObject, DeploymentSyncContext syncContext)
в Microsoft.Web.Deployment.DeploymentObject.SyncToInternal (DeploymentObject
destObject, DeploymentSyncOptions syncOptions, PayloadTable payloadTable, Conten
tRootTable contentRootTable)
в Microsoft.Web.Deployment.DeploymentObject.SyncTo (DeploymentProviderOptions
providerOptions, DeploymentBaseOptions baseOptions, DeploymentSyncOptions syncO
ptions)
в MSDeploy.MSDeploy.ExecuteWorker ()
Количество ошибок: 1. *
Если я выполню IISRESET на DESTINATIONSERVER, ошибка не произойдет!
Мой вопрос:
Можно ли разблокировать DLL без выполнения команды IISRESET?
Я думаю, что могу избежать перезапуска всего веб-сервера.
Можете ли вы помочь мне '
Большое спасибо!
С уважением.