共用方式為


@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#VBJS ,分別參考 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"
%>

另請參閱