既定の Azure Web ロールは、Web サイトを特定の IP アドレスにバインドしているようです。デプロイの一環として、localhost または 127.0.0.1 をリッスンするように Web サイトをバインドする必要があります。
サービス定義を次のように構成しました。
<Startup>
<Task commandLine="Startup.cmd" executionContext="elevated">
<Environment>
<Variable name="ComputeEmulatorRunning">
<RoleInstanceValue xpath="/RoleEnvironment/Deployment/@emulated" />
</Variable>
</Environment>
</Task>
</Startup>
Starup.cmd ファイルで、私は以下の行を持っています:
eventcreate /ID 1 /L APPLICATION /T INFORMATION /SO AzureRoleStartup /D "実行中: BindIISSite.ps1" powershell -NoProfile -ExecutionPolicy unrestricted -Command ".\BindIISSite.ps1"
BinIISite.ps1 には、以下の PS スクリプトがあります。
import-module WebAdministration
New-WebBinding -Name "*MyWebsite*" -IPAddress "*" -Port 8089
上記のすべての設定で、「MyWebSite」がポート 8089 の * にバインドされていないことに気付きました。
しかし、Azure VM で startup.cmd を手動で実行すると、正しくバインドされているようです。上記の何が間違っているのでしょうか?