2011-07-13 9 views
0

現在、Azure Webの役割には、多くのバグがあり、例外はOnStart()からスローされます。例外がスローされるとAzureランタイムが再び役割を開始します。それは私のためには便利ではありません。ロールOnStart()はまったく同じポイントで実行され、再びクラッシュし、これは永遠に続きます。一度それがクラッシュすると、私はむしろそれを停止したいと思います。OnStart()が例外をスローした場合、私の役割を再開しないようにAzureランタイムに問い合わせることはできますか?

OnStart()が例外を起こしてクラッシュすると、どうにか私の役割を再起動しないようにAzureランタイムに問い合わせることはできますか?

答えて

1

それが利き少し重いようだが、あなたは管理APIを使用して試してみて、トライキャッチで全体的な役割を停止することができます。

個人的に私はそれがsmarxは多分私の役割はキャッチで呼び出して役割を停止するAzureのランタイムを聞いて、それを再起動することができなかったいくつかの機能はあり

2

まあ、あなたのコードの周りにtry/catchを入れて、catchで永遠に眠ることができます。

ただし、処理されない例外がスローされたり、処理が終了したりすると、Windows Azureは再起動を試みます。この動作を変更する方法はありません。

+0

を示唆するように、単にThread.Sleep(Timeout.Infinite)を使用する方がはるかに簡単だと思いますか? – sharptooth

+0

いいえ、私はどのように表示されません。 – smarx

1

Smarxは当然ですが、独自のWebロールスレッドを開始し、未処理の例外が呼び出された場合は再起動するデザインパターンがあります。このパターンでは、作業者の役割や、いつそれらを再起動するか、いつ行っていないかをより詳細に制御できます。そのような実装のためにここを参照してください:

http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/2010/12/running-multiple-threads-on-windows.html

関連する問題