私たちが採用したアプローチは、アプリケーションと共に _app_offline.htm ( App Offline ) ファイルを展開することでした。そうすれば、サイトがダウンしている理由を説明する素敵なメッセージが表示されます。
次に、デプロイの時間になったら、Mircrosofts Webdeploy を使用して名前を app_offline.htm に変更します。名前の変更のコードを、Octopus デプロイの最初のステップとして実行される powershell スクリプトに入れます。
write-host "Website: $WebSiteName"
# Take Website Offline
$path = "$WebDeployPath";
$path
$verb = "-verb:sync";
$verb
# Take root Website offline
$src = "-source:contentPath=```"$WebSiteName/_app_offline.htm```"";
$src
$dest = "-dest:contentPath=```"$WebSiteName/app_offline.htm```"";
$dest
Invoke-Expression "&'$path' $verb $src $dest";
# Take Sub Website 1 offline
$src = "-source:contentPath=```"$WebSiteName/WebApp1/_app_offline.htm```"";
$dest = "-dest:contentPath=```"$WebSiteName/WebApp1/app_offline.htm```"";
Invoke-Expression "&'$path' $verb $src $dest";
通常、$WebSiteName は「既定の Web サイト」です。また、` は単一引用符ではなく、実際にはバッククォート文字であることに注意してください (通常、キーボードのチルダで見つかります)。
octopus が Web サイトを新しい場所に展開している場合、Web サイトは自動的にオンラインに戻ります。それを望まない場合は、app_offline ファイルを配置した状態で新しい Web サイトをデプロイできます。その後、次のスクリプトを使用して削除できます。
write-host $WebSiteName
# & "c:\Program Files (x86)\IIS\Microsoft Web Deploy V2\msdeploy.exe" -verb:delete -dest:contentPath="$WebSiteName/app_offline.htm"
# those arn't QUOTES!!!!, they are the back accent thing.
write-host "Website: $WebSiteName"
# Put Web app Online.
$path = "$WebDeployPath";
$path
$verb = "-verb:delete";
$verb
$dest = "-dest:contentPath=```"$WebSiteName/app_offline.htm```"";
$dest
Invoke-Expression "&'$path' $verb $dest";
# Put Sub Website Online
$dest = "-dest:contentPath=```"$WebSiteName/WebApp1/app_offline.htm```"";
Invoke-Expression "&'$path' $verb $dest";