<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 服務會與 ASP.NET 在裝載的應用程式定義域 (AppDomain) 中並存執行。即使 WCF 與 ASP.NET 可共存於相同的 AppDomain,但 WCF 要求依預設不會由 ASP.NET HTTP 管線處理。因此,WCF 服務無法使用 ASP.NET 應用程式平台的某些元素,包括:
- ASP.NET 檔案/URL 授權
- ASP.NET 模擬
- Cookie 架構工作階段狀態
- HttpContext.Current
- 透過自訂 HttpModule 的管線擴充性
如果您的 WCF 服務需要在 ASP.NET 內容中運作,而且只透過 HTTP 進行通訊,可使用 WCF 的 ASP.NET 相容性模式。當 aspNetCompatibilityEnabled 屬性在應用程式層級設為 true 時,便會開啟這個模式。服務實作必須使用 AspNetCompatibilityRequirementsAttribute 類別宣告其可在相容性模式執行。啟用相容性模式時,
- ASP.NET 檔案/URL 驗證會在 WCF 驗證前強制執行。驗證決策是以要求的傳輸層級身分識別為基礎,訊息層級的身分識別則會被忽略。
- 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