2

マイElastic Beanstalkでのインストールがこのエラーが原因のVisual Studioによってデプロイされません。は、Elastic Beanstalkでに展開することはできません:ERROR_FILE_IN_USEは

2016年7月1日20:45:02627 ERROR 1 AWSBeanstalkCfnDeploy.DeploymentUtils - 例外中の配備 Microsoft.Web.Deployment.DeploymentDetailedClientServerException:Webプロセスは、外部プロセスによってロックされているため、デスティネーションのファイル 'msvcr100.dll'を変更できません。パブリッシュ操作を成功させるには、アプリケーションを再起動してロックを解除するか、次回のパブリッシュ時に.Netアプリケーション用のAppOfflineルールハンドラを使用する必要があります。詳しくはhttp://go.microsoft.com/fwlink/?LinkId=221672#ERROR_FILE_IN_USEをご覧ください。

このリンクは、AppOfflineを有効にする設定でpubxmlファイルを作成することを示唆していますが、このファイルは組み込みの公開機能を使用してVSを介して公開する場合にのみ有効です。これがAWSで動作することを示唆する文書は見つかりませんでした。

どのようにしてElastic Beanstalkの展開にAppOfflineを有効にできますか?

ありがとうございます!

答えて

3

申し訳ありませんが、これは一般的なアドバイスであり、必要なコードではありませんが、解決策は.ebextensions経由でフックを使用することです。 http://docs.aws.amazon.com/codedeploy/latest/userguide/app-spec-ref-hooks.htmlを参照してください。

更新プログラムが展開される前にapp_offline.htmを追加し、更新プログラムが展開されると削除するためにpowershellスクリプトの実行を追加できます。

同様の問題がありましたが、問題のDLL(abcPDF、v9)は、EBが気に入らなかったapplication_start()のライセンスを初期化していたためブロックされました。そこで私たちはライセンスを他の場所に適用しました。

しかし、私はこのアプローチがうまくいくと思います。

- 多分、このコンテナコマンドがうまくいくでしょう。前述のライセンスによってDLLをロックしているため、IISアプリケーションプールの直前にIISアプリケーションプールがリサイクルされています。

/.ebextensions/recycleapppool.config

container_commands:

__recycle_app_pool:

____commandます。C:\ Windows \ System32 \ inetsrvに\ Appcmd.exeのリサイクルアプリケーションプールのDefaultAppPool

+0

ありがとうございました!私は最近、実際にこれを打つことはありませんが、問題が再び現れる場合は、必ずこのスレッドにタグを付けます。 – Ryan

+0

app_offline.htmをどのように追加したか説明できますか?私はアプリケーションプールとすべてのiisサービスを停止しようとしましたが、ファイルがロックされていることがあります – red888

2

かなり後多くの実験、私はこの問題のために見つけることができた唯一の解決策は、

// in Project/.ebextensions/reset.config 

container_commands: 
    00_nuke: 
    command: IISReset 
    waitAfterCompletion: 0 

ダウンタイム(t2.microの場合)は約4秒でしたが、その間に503が得られました。これは確かにあまり良くありません。

注:Github issue for this(執筆時点でオープン)があります。

オプションをお持ちの場合は、サービスをAWSではなくAzureにデプロイし、問題を回避する設定オプション(環境変数MSDEPLOY_RENAME_LOCKED_FILESなど)がrelated Azure specific questionなどあります。

+0

envに少なくとも2つのインスタンスがある場合、どのようにダウンタイムを起こすかわかりません。インスタンスは1つだけですか? – red888

関連する問題