0

Azure で Web ロールとしてホストされている Web サービスがあります。この Web ロールでは、Run() メソッドをオーバーライドし、次の順序でいくつかのデータベース操作を実行して、基本的にワーカー ロールとして機能します。

  1. BLOB ストレージに移動して、小さなデータ セットをプルします。

  2. 将来の使用のためにこのデータをキャッシュします。

  3. 古すぎるいくつかのブロブを殺します。

  4. Thread.Sleep(900000);
    

基本的にバックグラウンドで15分ごとに動作を繰り返します。DevFabric で実行すると正常に動作しますが、Azure ポータルをデプロイすると、役割を安定させてからノードを準備するというループに陥ります。

どちらのインスタンスも実際に起動することはありません。診断を有効にしましたが、問題があることを示唆するものは何も表示されません。なぜこれが起こっているのか、私は途方に暮れています。

4

3 に答える 3

1

このコードをに移動することをお勧めしRun()ます。ではOnStart()、ロールインスタンスはまだロードバランサーに表示されていません。また、に非常に長い(OK、無限の遅延)を導入しているOnStart()ため、ロールが安定しようとしているというメッセージが表示されるのはこのためです(詳細これらのメッセージに関する情報はここにあります。)

于 2012-04-09T03:19:35.270 に答える
1

OnStart でエラーがスローされているようです。関数全体で try/catch を実行し、エラーを EventViewer にダンプする方法はありますか? そこから、インスタンスにリモート接続してエラーを調査できます

ほとんどの場合、クラウドにデプロイされた構成は、エミュレーターで実行されている構成とは異なります (SQL Azure ファイアウォールのアクセス許可、ATS ではなくローカル Dev ストレージへのポインターなど)。また、診断がローカル Dev ストレージではなく実際の Azure アカウントを指していることを確認してください。

于 2012-04-09T01:16:10.747 に答える
0

他の誰かが私を助けようと努力したとき、私は通常、自分の質問に答えるのが好きではありませんが、これを解決するために使用したアプローチは文書化する必要があると感じています.

Azure へのデプロイ時に intellitrace を有効にすると、スローされるすべての例外を確認し、例外の原因を調査することができました。

Intellisense は、展開の問題を解決する上で重要でした。devfabric のデプロイと azure へのデプロイの間に矛盾があると感じている人には、この方法をお勧めします。

于 2012-04-13T21:31:42.137 に答える