6

ここで説明するように、Webとワーカーの役割を組み合わせたシナリオを実装しています。ここでは、ワーカーの役割に以下を追加するだけです。

public override void Run()
{
    // This is a sample worker implementation. Replace with your logic.
    Trace.WriteLine("WorkerRole1 entry point called", "Information");
    while (true)
    {
        Thread.Sleep(10000);
        Trace.WriteLine("Working", "Information");
    }
}

投稿のコメントに記載されているように、問題は、このワーカープロセスがweb.configを読み取れないため、app.configを追加する必要があることです。app.configが自動的にデプロイされないことにも注意してください。

だから私の質問は、app.configがデプロイされるようにプロジェクトをどのように構成するのですか?

プロジェクトにapp.configを追加し、ビルドアクションを[コンテンツ]、[常にコピー]に設定しました

これはエミュレーターで正常に機能しますが、Azureにデプロイされた場合は機能しません。

注:エミュレーターでprojectname.dll.configが作成されていることに気付きましたが、Azureにデプロイされたときは作成されていません。VS2010、Windows AzureTools2011を使用しています

代わりに.cscfgファイルを使用することを提案する人もいますが、私のコンポーネントの多くは、web.config / app.configから設定を取得します:Elmah、一時的な障害処理クライアント、診断、電子メールなど。

4

3 に答える 3

3

このブログ投稿をよくお読みください。完全な IIS を使用した Windows Azure Web ロールで何が起こっているかを詳細に説明しています。

必要なことは、WaIISHost.exe.configファイルを追加することです (出力へのコピー = 常にコピー)。そして、必要なすべての構成をそのファイルに入れます。これは、コード (RoleEntryPoint) が pdojectName.dll プロセスではなく、WaIISHost.exe プロセスにあるためです。

于 2012-08-30T19:28:09.600 に答える
3

Azure SDK 1.8 を使用し、publish を使用して Visual Studio から Web ワーカー ロールをデプロイする場合、.xml という名前の構成ファイルを含める必要がありました。私の設定で ProjectName.Dll.config 。Windows azure で実行している場合、app.config からの構成は Web ロールによって取得されません。また、app.config ファイルは ProjectName.Dll.config に変換されず、展開パッケージの bin フォルダーに自動的に追加されるため、手動で作成し、常にコピーするように設定する必要があります。

于 2013-04-01T20:33:54.040 に答える