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、おそらくフルパスの文字列) で、Microsoft.Web.Deployment.FileStreamEx.CreateInstance (文字列パス、FileMode fileMode、FileAccess fileAccess) で、Microsoft.Web.Deployment.FilePathProvider で。
Microsoft.Web.Deployment.DeploymentObject.SyncToInternal(DeploymentObject destObject, DeploymentSyncOptions syncOptions, PayloadTable payloadTable, ContentRootTable contentRootTable) で Microsoft.Web.Deployment.DeploymentAgent.HandleSync(DeploymentAgentWorkerR equest workerRequest) --- 内部例外スタック トレースの終わり --- - Microsoft.Web.Deployment.StatusThreadHandler.CheckForException() で Microsoft.Web.Deployment.AgentClientProvider.RemoteDestSync(DeploymentObject sourceObject, DeploymentSyncContext syncContext) で Microsoft.Web.Deployment.DeploymentObject.SyncToInternal(DeploymentObject destObject, DeploymentSyncOptions syncOptions, PayloadTable payloadTable) 、ContentRootTable contentRootTable) Microsoft.Web.Deployment.DeploymentObject.SyncTo(DeploymentProviderOptions providerOptions,DeploymentBaseOptions baseOptions、DeploymentSyncOptions syncO ptions) で MSDeploy.MSDeploy.ExecuteWorker() エラー数: 1.*
DESTINATIONSERVER でIISRESETを実行すると、エラーは発生しません。
私の質問は:
IISRESET コマンドを実行せずに DLL のロックを解除することは可能ですか?
Web サーバー全体を再起動することは避けられると思います。
手伝って頂けますか'
どうもありがとう!
よろしくお願いします。