Condividi tramite


@ServiceHost

Associa la factory usata per creare l'host del servizio al servizio da ospitare e agli altri aspetti di programmazione necessari per accedere al codice host fornito nel file .svc o per compilarlo.

Sintassi

<% @ServiceHost
Service = "Service, ServiceNamespace"
Factory = "Factory, FactoryNamespace"
Debug = "Debug"
Language = "Language"
CodeBehind = "CodeBehind"
%>

Attributi

Servizio

Nome del tipo CLR del servizio ospitato. Deve trattarsi di un nome completo di un tipo che implementa uno o più contratti di servizio.

Factory

Nome del tipo CLR della factory dell'host del servizio usato per creare un'istanza dell'host del servizio. Questo attributo è facoltativo. Se non viene specificato, viene usata la factory ServiceHostFactory predefinita, che restituisce un'istanza dell'host ServiceHost.

Debug

Indica se il servizio Windows Communication Foundation (WCF) deve essere compilato con simboli di debug. true se il servizio WCF deve essere compilato con simboli di debug; in caso contrario, false.

Linguaggio

Specifica il linguaggio usato per la compilazione di tutto il codice inline contenuto nel file con estensione svc. I valori possono rappresentare qualsiasi oggetto . Linguaggio supportato da NET, tra cui C#, VBe JS, che fanno riferimento rispettivamente a C#, Visual Basic e JScript .NET. Questo attributo è facoltativo.

CodeBehind

Specifica il file di origine che implementa il servizio Web XML, quando la classe che implementa il servizio Web XML non risiede nello stesso file e non è stata compilata in un assembly e inserita nella directory \Bin .

Commenti

L'oggetto ServiceHost usato per ospitare il servizio è un punto di estendibilità all'interno del modello di programmazione Windows Communication Foundation (WCF). Poiché un modello di factory può essere un tipo polimorfico di cui l'ambiente host non deve creare un'istanza direttamente, tale modello viene usato per creare un'istanza dell'host ServiceHost.

L'implementazione predefinita usa la factory ServiceHostFactory per creare un'istanza dell'host ServiceHost. È tuttavia possibile specificare la propria factory (una che restituisce l'host derivato) specificando il nome del tipo CLR dell'implementazione @ServiceHost della factory nella direttiva .

Per usare la propria factory host del servizio personalizzata anziché la factory predefinita, specificare solo il nome del tipo nella @ServiceHost direttiva come indicato di seguito.

<% @ServiceHost Factory="DerivedFactory" Service="MyService" %>

È consigliabile garantire che le implementazioni presentino la massima semplicità possibile. Se si usa un'elevata quantità di logica personalizzata, quest'ultima è più riutilizzabile se inserita nell'host anziché nella factory.

Ad esempio, per abilitare un endpoint abilitato per AJAX per MyService, specificare per WebScriptServiceHostFactory il valore dell'attributo , anziché l'impostazione Factory predefinita ServiceHostFactory, nella @ServiceHost direttiva come illustrato nell'esempio seguente:

<% @ServiceHost
Service="MyService"
Language="C#"
Debug="true"
Factory="WebScriptServiceHostFactory"
%>

Vedi anche