4

Windows Azure の Web ロール インスタンスに RDP を実行して を作成するiisresetと、 がWorld Wide Web Publishing Serviceシャットダウンし、ロールを起動して再度実行する唯一の方法は、前述のサービスを再起動するか、インスタンスを再ロール/再起動することであることに気付きました。

World Wide Web Publishing Service理由はわかりませんが、Windows Azure の既定の開始モードは ですManual。なぜなら、iisresetWeb ロールを WWW で使用できないままにしておくためです。

私はこれに対する解決策を見つけました - IMO - 奇妙な振る舞いで、この投稿の元の質問に答えました。

ただし、Windows Azure に代わるものはありiisresetますか?プログラムで正確なインスタンスを特定できる場所はありますか? それは別の問題だからです。今度は、各インスタンスに RDP を使用する必要があります。各インスタンスをピンポイントで特定できると便利です。

考えてみてください。www.awesome-azure.com への CNAME があります。これはラウンドロビンで 3 つのインスタンスによってホストされており、RDP を介して、REST API (同様) を介してそれぞれをリセット/監視/診断/ハートビートしたいと考えています。

これは達成できますか。

編集

達成すべき目標だけでなく、課題が何であるかをより明確にしようとしました。

編集2

課題に対する解決策を提供しましたiisreset。可能であれば、インターネット経由でインスタンスを特定するように質問を更新しました。

4

3 に答える 3

4

World Wide Web Publishing Serviceさて、Microsoft Azureが開始モードに設定することを決定した理由はまだわかりませんがManual、それを変更する方法を見つけました。

元の質問の2番目の部分については、まだ回答を期待していますが、それまでは、iisresetスタートアップタスクの(IMO)問題を修正するための最初の部分の解決策を見つけてください。

アプリケーションのルートにあるスタートアップフォルダーに配置したstartup.cmd(または名前を付けたもの)に、次のテキスト行を含めます。

powershell-ExecutionPolicyUnrestricted。\startup\ w3svc.ps1

同じフォルダーに、次の内容のw3svc.ps1という名前のPowerShellファイルを作成します。

Set-ItemProperty -Path HKLM:\ SYSTEM \ CurrentControlSet \ Services \ W3SVC -Name Start -Value 2

出来上がり; IISが期待どおりに機能するようになりました-World Wide Web Publishing Service開始モードに設定されましたAutomatically

注:上記を機能させるには、 ServiceConfiguration.cscfgファイルでosFamilyプロパティを2に 設定する必要があります。

于 2012-09-29T11:08:48.040 に答える
1

なぜ機能しないのかわかりませんiisreset。2 番目の質問については、Service Management API を使用してインスタンスを再起動または再イメージ化できます。それはあなたが望むことをするかもしれません。もちろん、独自のコードを記述して、必要なことを行うこともできます。(Web ロールに、呼び出された BLOB をポーリングし、BLOB が変更されるたびに実行するコードを含めることができます<instance ID>.txtiisreset)

于 2012-09-27T22:27:54.760 に答える
1

WebRole.cs でRoleEnvironment.Changingイベントを処理し、イベント引数オブジェクトの Cancel プロパティを true に設定できます。次に、構成設定を変更するだけで、Azure がすべてのインスタンスを順番に再起動します。

于 2012-09-26T09:57:45.367 に答える