2012-01-19 18 views
1

にWCF /ワークフローサービスをホスティング:web.configファイルの継承/マージ/スコープは、私は現在、私のAppFabricのワークフローサービスとWCFサービスのためにIISで次のような構造をテストしていたサブフォルダ

/WebApp/ <-- IIS Application here 
/WebApp/bin/ <-- binaries here 
/WebApp/web.config <-- empty. 
/WebApp/WorkflowApp/V1.0/web.config <-- Settings are stored here 
/WebApp/WorkflowApp/V1.0/MyWorkflow.xamlx 
/WebApp/WorkflowApp/V1.0/Default.aspx <-- just for testing 
/WebApp/WcfService/V1.0/web.config <-- Settings are stored here 
/WebApp/WcfService/V1.0/MyService.svc 
/WebApp/WcfService/V1.0/Default.aspx <-- just for testing 
私のワークフローサービスでの私のコードの活動の一つから

<appSettings> 
    <add key="TestSetting" value="Test Setting Value" /> 
</appSettings> 

、そして私のWCFサービスの中から、私は次のコードを使用して「のappSettings」からアイテムを読みたい:

私のweb.configファイルには、次のセクションが含まれています。

var config = ConfigurationManager.AppSettings["TestSetting"]; 

これは常にnullを返します。 WebConfigurationManager.AppSettings ["TestSetting"]も試みましたが、これもnullを返します。 web.config階層がappSettingsに対して機能していないようです。

テストのために、このappSettingがASP.NET Webページからアクセスできるかどうかを確認するために、Default.aspxに次の内容を追加しました。

<html> 
    <body> 
     <h2> 
      TestWebApp 
     </h2> 
     <%= ConfigurationManager.AppSettings["TestSetting"] %> 
    </body> 
</html> 

サブフォルダ内のweb.configは処理されていないようです。 AppFabricワークフロー/ WCFサービスで構成スコープが機能しないのはなぜですか?それを機能させるために私は何ができますか?

IISのWebアプリケーションのルートにワークフロー/ WCFサービスを配置すると、appSettingsセクションに期待どおりにアクセスできます。ワークフローサービスをサブディレクトリに配置する場合にのみ、構成セクションにアクセスできません。

更新:

それは両方のケースに影響を与えるので、私は、WCFとワークフローサービスにそれを一般化する質問を変更しました。私がこれを試している理由は、IISアプリケーションとアプリケーションプールの数を減らすことです。 Windows Server AppFabric Architecture Guideによると

同様

アプリケーションプールの計画に、我々はそれが理にかなっているWebアプリケーションに使用する論理的にグループの複数のサービスということをお勧めします。 AppFabricは何百ものWebアプリケーションを処理するように設計されています。しかし、パフォーマンスと管理性を最適化するためには、Webアプリケーションの数をできるだけ少なくすることが目標です。

このテキストから、Webアプリケーションのサブフォルダに複数のWCF/Workflowサービスを置くと効果があります。

答えて

2

私の問題は、あなたのワークフローがASP.NETスレッドではなく、スレッドプール内の自分のスレッド上で実行されているということです。その結果、ASP.NETのスコープルールは本当に気にする必要はなく、標準のAppDomain設定ファイルを使用します。

+0

おそらくあなたは正しいです。この記事(http://msdn.microsoft.com/en-us/library/ee677351.aspx)によれば、スコープ規則に従ってサービス構成を行います。私はちょうどこれらの有効範囲のルールが構成内の他のすべてにも適用されていると仮定しました。おそらくこれはそうではありません。 appSettingsはスコープ規則に従わないことがあります。 – Mas

+0

ワークフローサービスでこのような設定をどのように達成できるか考えていますか? – Mas

+0

特別扱いが必要です。サブディレクトリはIServiceBehaviorを介してServiceHostから取得する必要があります。ワークフローサービスの場合、このデータをワークフロー拡張に添付しました。 – Mas

関連する問題