0

カスタマイズされたインストルメンテーションを実行するために、WebRole の起動時に呼び出される C# コンソール アプリがあります。このプログラムが Service Config から最新の値を読み取り、それに応じて動作できるようにしたいと考えています。

.EXE を呼び出して昇格モードで実行するスタートアップ スクリプトをセットアップしました。Azure の ServiceRuntime への参照をコンソール アプリに追加しましたが、次のエラーが発生します:ロール検出データを利用できません

4

1 に答える 1

1

この実行可能ファイルの呼び出しを .csdef のスタートアップ タスクとして配置した場合、ロールがまだ設定されていないため、求めている情報が利用できない可能性があります ( Web/Worker ロールのライフサイクルを参照)。

これは、WebRole.cs の OnStart 内で実行可能ファイルを呼び出している場合にも問題になる可能性があります。これは、IISConfigurator が OnStart と非同期で呼び出されるためです。

スタートアップ タスクについては、この回避策の 1 つがhttp://mvolo.com/configure-iis-websites-windows-azure-startup-tasks-appcmd/で詳しく説明されています (ただし、IIS 構成の変更を扱っています)。

WebRole の問題については、Run() をオーバーロードし、そこから実行可能ファイルを呼び出すことができます。次のような再試行が必要になる可能性があります。

 while (!RoleEnvironment.IsAvailable) {
     Thread.Sleep(1000);
 }
 RunExecutable();
于 2013-02-20T14:10:20.570 に答える