0

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 サーバー全体を再起動することは避けられると思います。

手伝って頂けますか'

どうもありがとう!

よろしくお願いします。

4

1 に答える 1

2

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

于 2010-09-30T20:53:20.260 に答える