2012-12-28 6 views
6

Web.configの設定をAzureワーカーのロールに最適にする方法については、投稿が矛盾しているようです。いくつかの記事では、WaIISHost.exe.configを作成し、出力を常に設定し、関連するweb.config情報をそのファイルにコピーする必要があるとしています。他の投稿では、WaIISHost.exeではなくapp.configの作成について説明しています。どちらが正しい?WaIISHost.exe.configとワーカーロールのコンフィグレーションのためのapp.configの比較

答えて

5

これに対する答えは、使用しているSDKのバージョンによって少し異なります。まず、WaIISHost.exe.configはWebロール(ワーカーロールではない)にのみ適用されます。 Worker Rolesは、その構成設定を使用して引き続きapp.configを使用します。ここでは、WebロールのRoleEntryPointを構成設定で構成しようとしていると仮定します。

Webロールの場合:最新のSDK(執筆時点で1.8)を使用している場合、WaIISHost.exe.configファイル(およびローカルコピーなど)を作成しても動作しなくなります。最新のSDKで何かが変更され、これらの値が引き上げられなくなります。以前のバージョンのSDKでは、これはやっている方法です。最新バージョン(および次のバージョンの可能性が高い)1.8では、app.configを作成できます。そうすると、実際には "WebRoleProjectName.dll.config"のようなbinディレクトリにファイルが作成されます。手動でこのファイルを作成する必要はありません。また、「ローカルにコピー」する必要はありません。通常と同じようにapp.configを作成するだけで、Web Role内のRoleEntryPointをそのように設定することができます。

+2

Webロール内のapp.configの問題は、今はUIのPublish ...コマンドでデプロイされていません – lnaie

+1

Visual Studioでデプロイした場合、app.configはWebワーカーロールとして機能しませんUIですが、設定ファイルにProjectName.dll.configという名前をつけて、それを常にコピーするように設定するとうまくいきます。私はちょうど同じ問題を抱えていた。 – sjkp

+0

ビルド中に、app.configの名前が .dll.configに変更され、直接binフォルダに移動さ​​れました。 binフォルダにあるものはすべて、Webロール用にパッケージ化されてデプロイされます。ルートディレクトリにapp.configがあり、ビルド後にbinディレクトリを確認してもよろしいですか?私のためにうまく動作します。 – dunnry

2

前回のSO postでは、Windows AzureのWebサイトとWindows Azure Cloudサービスの両方を混在させて理解するために時間を費やす必要があることを提案しました。

上記のように、Webロールとワーカーロールを一緒に使用しています。 WaIISHost.exeはWindows Azure Webロールホストプロセスで、WebロールDLLのロードと実行を担当します。このプロセスは、Windows Azure Workerロールにも存在しないため、Workerロールとは何の関係もありません。このプロセスは、Webロールでのみ使用できます。そのため、「WaIISHost.exe.configとワーカーロールのconfigのapp.config」の上の質問は無関係です。

Web.configは、Webロールとワーカーロールの両方で使用されますが、web.configはWebアプリケーションでのみ使用されます。したがって、ロールを設定する場合はapp.config(webとworkerロールの両方)を使用できますが、web.configを使用できるWebサイト設定の場合は使用できます。

あなたの最終目標が簡単な言葉で書かれている場合は、正確な援助とそれを行う方法についての確かな助言を得るでしょう。

+0

ありがとうございました!私はあなたの助けに感謝します。ここに私の目的です...私は働いているMVCアプリケーションを持っています。このMVCアプリケーションのコントローラーは、Webサービスエンドポイント(Azureにないサービスエンドポイント)を呼び出します。これは、他の場所でホストされています。ローカルでデバッグモードでMVCアプリケーションを実行すると、アプリケーションは正常に動作します。 MVCアプリをAzureにプッシュすると(Azureのウェブサイトとクラウドサービスの両方を試してみました)、アプリは動作しません。具体的には、コントローラーでコントローラ内のサービスコールをコメントアウトして、すべて正常に動作するので、サービスエンドポイントの設定情報がどうにか公開されていないことを確信しています。 – goldfinger

関連する問題