Partilhar via


@ServiceHost

Associa a fábrica utilizada para produzir o anfitrião de serviços com o serviço a alojar e outros aspetos de programação necessários para aceder ou compilar o código de alojamento fornecido no ficheiro .svc.

Syntax

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

Atributos

Serviço

O nome do tipo CLR do serviço alojado. Este deve ser um nome qualificado de um tipo que implementa um ou mais contratos de serviço.

Factory

O nome do tipo CLR da fábrica de anfitriões de serviços utilizada para instanciar o anfitrião do serviço. Este atributo é opcional. Se não for especificado, é utilizada a predefinição ServiceHostFactory , que devolve uma instância de ServiceHost.

Depurar

Indica se o serviço Windows Communication Foundation (WCF) deve ser compilado com símbolos de depuração. true se o serviço WCF deve ser compilado com símbolos de depuração; caso contrário, false.

Linguagem

Especifica o idioma utilizado ao compilar todo o código inline no ficheiro (.svc). Os valores podem representar qualquer . Linguagem suportada pelo NET, incluindo C#, VBe JS, que se referem a C#, Visual Basic e JScript .NET, respetivamente. Este atributo é opcional.

CodeBehind

Especifica o ficheiro de origem que implementa o serviço Web XML, quando a classe que implementa o serviço Web XML não reside no mesmo ficheiro e não foi compilada numa assemblagem e colocada no diretório \Bin .

Observações

O ServiceHost utilizado para alojar o serviço é um ponto de extensibilidade no modelo de programação do Windows Communication Foundation (WCF). Um padrão de fábrica é utilizado para instanciar o ServiceHost porque é, potencialmente, um tipo polimórfico que o ambiente de alojamento não deve instanciar diretamente.

A implementação predefinida utiliza ServiceHostFactory para criar uma instância do ServiceHost. Mas pode fornecer a sua própria fábrica (que devolve o seu anfitrião derivado) ao especificar o nome do tipo CLR da implementação de fábrica na @ServiceHost diretiva.

Para utilizar a sua fábrica de anfitrião de serviço personalizado em vez da fábrica predefinida, basta indicar o nome do tipo na diretiva da @ServiceHost seguinte forma.

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

Mantenha as implementações de fábrica o mais leve possível. Se tiver muita lógica personalizada, o código será mais reutilizável se colocar essa lógica dentro do anfitrião em vez de dentro da fábrica.

Por exemplo, para ativar um ponto final ativado para AJAX para MyService, especifique o WebScriptServiceHostFactory para o valor do Factory atributo, em vez do predefinido ServiceHostFactory, na @ServiceHost diretiva, conforme mostrado no exemplo seguinte:

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

Ver também