<serviceHostingEnvironment>

この要素は、環境をホストするサービスがインスタンス化する特定のトランスポートの型を定義します。この要素が空の場合は、既定の型が使用されます。

<system.serviceModel>
  <serviceHostingEnvironment>

<serviceHostingEnvironment>
         aspNetCompatibilityEnabled="Boolean"
       minFreeMemoryPercentageToActivateService="Integer"
     <baseAddressPrefixFilters>
                <add prefix="string"/>
          </baseAddressPrefixFilters>
     <transportConfigurationTypes>
        <add name="String" 
             transportConfigurationType="String" />
     </transportConfigurationTypes>
</serviceHostingEnvironment>

属性および要素

属性

属性 説明

aspNetCompatibilityEnabled

ASP.NET の互換モードが現在のアプリケーションに対して有効になっているかどうかを示すブール値。既定値は false です。

この属性が true に設定されている場合、Windows Communication Foundation (WCF) サービスに対する要求は ASP.NET HTTP パイプラインを通過し、HTTP プロトコル以外を介した通信は禁止されます。詳細については、「WCF Services and ASP.NET」を参照してください。

minFreeMemoryPercentageToActivateService

WCF サービスをアクティブにする前に、システムに必要な最小限の空きメモリの容量を指定する整数。

ms731336.Caution(ja-jp,VS.90).gif注意 :
WCF サービスの web.config ファイルで、部分信頼と共にこの属性を指定すると、サービスを実行したときに SecurityException が発生します。

子要素

要素 説明

<baseAddressPrefixFilters>

サービス ホストによって使用されるベース アドレスのプレフィックス フィルタを指定する構成要素のコレクション。

<transportConfigurationTypes>

特定のトランスポートの型を識別する構成要素のコレクション。

親要素

要素 説明

serviceModel

すべての Windows Communication Foundation (WCF) 構成要素のルート要素です。

解説

既定では、WCF サービスは、ホストされるアプリケーション ドメイン (AppDomain) で ASP.NET と並行で実行します。WCF と ASP.NET が同じ AppDomain で共存できても、既定では WCF 要求は ASP.NET HTTP パイプラインでは処理されません。結果として、ASP.NET アプリケーション プラットフォームのいくつかの要素は、WCF サービスでは使用できません。これらの要素は次のとおりです。

  • ASP.NET ファイル/URL 承認
  • ASP.NET の偽装
  • Cookie ベースのセッションの状態
  • HttpContext.Current
  • カスタム HttpModule を経由するパイプライン拡張

WCF サービスが ASP.NET のコンテキストで機能し、HTTP 経由でのみ通信する必要がある場合は、WCF の ASP.NET 互換モードを使用できます。このモードは、aspNetCompatibilityEnabled 属性がアプリケーション レベルで true に設定されている場合に有効です。サービス実装では、AspNetCompatibilityRequirementsAttribute クラスを使用して互換モードで実行できる機能を宣言する必要があります。互換モードが有効な場合、

  • ASP.NET ファイル/URL 承認が、WCF 承認の前に強制的に実行されます。承認決定は、要求のトランスポート レベルの ID に基づいています。メッセージ レベルでの ID は、無視されます。
  • WCF サービス操作は、ASP.NET の偽装コンテキストで実行を開始します。ASP.NET の偽装と WCF の偽装の両方が特定のサービスで有効な場合は、WCF の偽装コンテキストが適用されます。
  • HttpContext.Current を WCF サービス コードから使用できるため、サービスは非 HTTP エンドポイントを公開しません。
  • WCF 要求は、ASP.NET パイプラインによって処理されます。受信要求を処理するように構成された HttpModules は、WCF 要求も処理できます。これらには、ASP.NET プラットフォーム コンポーネント (SessionStateModule など) とカスタム サードパーティ モジュールが含まれます。

次のコード サンプルは、ASP 互換モードを有効にする方法を示します。

コード

<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>

関連項目

リファレンス

ServiceHostingEnvironmentSection
ServiceHostingEnvironment

その他の技術情報

Hosting
WCF Services and ASP.NET