1

現在、IIS で AppFabric ワークフロー サービスと WCF サービスの次の構造をテストしています。

/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

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

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

ワークフロー サービス内のコード アクティビティの 1 つと、WCF サービス内から、次のコードを使用して "appSettings" から項目を読み取りたいと考えています。

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

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

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

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

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

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

アップデート:

両方のケースに影響するため、WCF サービスとワークフロー サービスに一般化するように質問を修正しました。これを試している理由は、IIS アプリケーションとアプリケーション プールの数を減らすためです。

Windows Server AppFabric アーキテクチャ ガイドによると:

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

このテキストから、Web アプリのサブフォルダーに複数の WCF/Workflow サービスを配置するとうまくいくはずだと私は信じています。

4

1 に答える 1

2

問題は、ワークフローが ASP.NET スレッドではなく、スレッド プール内の独自のスレッドで実行されていることだと思います。その結果、ASP.NET スコープ ルールはあまり気にせず、標準の AppDomain 構成ファイルを使用します。

于 2012-01-19T16:29:22.413 に答える