<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 サービスをアクティブにする前に、システムに必要な最小限の空きメモリの容量を指定する整数。
注意 :
WCF サービスの web.config ファイルで、部分信頼と共にこの属性を指定すると、サービスを実行したときに SecurityException が発生します。
|
子要素
要素 | 説明 |
---|---|
サービス ホストによって使用されるベース アドレスのプレフィックス フィルタを指定する構成要素のコレクション。 |
|
特定のトランスポートの型を識別する構成要素のコレクション。 |
親要素
要素 | 説明 |
---|---|
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