WebRole 内に 2 つのサイトがあり、スタートアップ タスクを定義しました。
最初の行は正常に機能し、新しいアプリ プールを作成します。
%WINDIR%\system32\inetsrv\appcmd.exe add apppool /name:"VCPool" /managedRuntimeVersion:"v4.0" /managedPipelineMode:"Integrated"
ここで、2 番目をこの新しく作成された AppPool に変更したいと思いますが、直後に別の行を追加しても役に立ちません。
%WINDIR%\system32\inetsrv\appcmd.exe set app "WebRole_IN_0_VC/" /applicationPool:"VCPool"
どうやら 2 番目のサイトはまだ準備が整っていないようです。
タスクを 30 秒遅らせる、または appcmd.exe を少し遅らせるにはどうすればよいですか? このスタートアップ タスクの依存関係を作成する方法がない限り、その 2 番目のサイトが稼働しているときにのみ実行されますか?
どんな助けでも大歓迎です、どうもありがとう、
この実行を 30 秒遅らせて、2 番目のサイトが稼働していて変更できることを確認する方法はありますか?
アップデート:
ヒントをありがとう。この件についてさらに調査を行いました。OnStart() イベントを見つけました。
1) しかし、私は Silverlight を使用しており、既存の Web プロジェクトを Cloud Roles プロジェクトでラップしているだけなので、WebRole.cs 自体はありません。それを Silverlight Web プロジェクトに追加して、そこで使用することはできますか? それとも、WebRole プロジェクトをゼロから作成して、Silverlight Web プロジェクトをすべて置き換えるようにすることをお勧めしますか?
2)<Runtime/>
サービス定義のタグについては、このように単純に追加すればよいのでしょうか? Webrole が管理者特権で実行された場合、セキュリティ上の影響はありますか?
<WebRole name="WebRole" enableNativeCodeExecution="true" vmsize="ExtraSmall">
<Runtime executionContext="elevated"/>
<Sites>
<Site name="WebRole" physicalDirectory="./WebRole">
...
</Sites>
</WebRole>
3) 最後になりましたが、cmd ファイルまたは実際にはこの行を実行するにはどうすればよいですか?
%WINDIR%\system32\inetsrv\appcmd.exe set site /site.name:"WebRole_IN_0_VC" /[Path='/'].applicationPool:"ASP.NET v4.0" >>Log.txt
OnStart() メソッドで?