@ServiceHost
將用來產生服務主機的處理站,與要裝載的服務和存取或編譯 .svc 檔案中提供的程式碼所需的其他程式設計方面加以關聯。
Syntax
<% @ServiceHost
Service = "Service, ServiceNamespace"
Factory = "Factory, FactoryNamespace"
Debug = "Debug"
Language = "Language"
CodeBehind = "CodeBehind"
%>
屬性
服務
所裝載之服務的 CLR 型別名稱。 這應該是實作一個以上的服務合約之型別的限定名稱。
Factory
用來具現化服務主機的服務主機處理站之 CLR 型別名稱。 此屬性是選擇性的。 如果沒有指定,則使用預設的 ServiceHostFactory,它會傳回 ServiceHost 的執行個體。
偵錯
指出是否應該使用偵錯符號編譯 Windows Communication Foundation (WCF) 服務。 如果 WCF 服務應以偵錯符號編譯,則為 true
,否則為 false
。
語言
指定編譯檔案內 (.svc) 所有內嵌程式碼時使用的語言。 這些值可以代表任何 。NET 支援的語言,包括 C#
、 VB
和 JS
,分別參考 C#、Visual Basic 和 JScript .NET。 此屬性是選擇性的。
CodeBehind
當實作 XML Web Service 的類別不是存放在相同的檔案中,且尚未編譯為組件並置於 \Bin 目錄內的時候,請指定實作 XML Web Service 的原始程式檔。
備註
用來裝載服務的 ServiceHost 是 Windows Communication Foundation (WCF) 程式設計模型中的擴充點。 因為 ServiceHost 是潛在的多型型別,而裝載環境不應直接具現化多型型別,所以使用處理站模式加以具現化。
預設實作會使用 ServiceHostFactory 來建立 ServiceHost 的執行個體。 但您可在 @ServiceHost
指示詞中指定處理站實作的 CLR 型別名稱,藉此提供您自己的處理站 (會傳回您的衍生主機之處理站)。
若要使用您自己的自訂服務主機處理站而非預設處理站,請依下列方式在 @ServiceHost
指示詞中提供型別名稱。
<% @ServiceHost Factory="DerivedFactory" Service="MyService" %>
盡可能保持處理站實作的簡便。 假設您有許多自訂邏輯,那麼若您將邏輯放在主機而非處理站內,則這些程式碼就更能重複使用。
例如,若要針對 MyService
啟用具備 AJAX 能力的端點,請在 @ServiceHost
指示詞內,對 Factory
屬性之值指定 WebScriptServiceHostFactory,而不要使用預設的 ServiceHostFactory,如下列範例所示:
<% @ServiceHost
Service="MyService"
Language="C#"
Debug="true"
Factory="WebScriptServiceHostFactory"
%>