Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O Modelo de Programação HTTP DA WEB do WCF permite que os desenvolvedores exponham os serviços Web do WCF (Windows Communication Foundation) por meio de solicitações HTTP básicas sem a necessidade de SOAP. O modelo de programação HTTP DA WEB do WCF é criado com base no modelo de extensibilidade do WCF existente. Ele define as seguintes classes:
Modelo de programação:
Canais e Infraestrutura de Envio:
Classes utilitárias e pontos de extensibilidade:
AspNetCacheProfileAttribute
O AspNetCacheProfileAttribute, quando aplicado a uma operação de serviço, indica o perfil de cache de saída do ASP.NET no arquivo de configuração que deve ser utilizado para armazenar em cache as respostas da operação no Cache de Saída do ASP.NET. Essa propriedade usa apenas um parâmetro, o nome do perfil de cache que especifica as configurações de cache no arquivo de configuração.
WebGetAttribute
O WebGetAttribute atributo é usado para marcar uma operação de serviço como uma que responde às solicitações HTTP GET. É um comportamento de operação passiva (os IOperationBehavior métodos não fazem nada) que adiciona metadados à descrição da operação. A aplicação do WebGetAttribute não tem efeito, a menos que um comportamento que procure esses metadados na descrição da operação (especificamente, o WebHttpBehavior) seja adicionado à coleção de comportamento do serviço. O WebGetAttribute atributo usa os parâmetros opcionais mostrados na tabela a seguir.
| Parâmetro | Descrição |
|---|---|
BodyStyle |
Controla se as solicitações e respostas enviadas e recebidas da operação de serviço à qual o atributo é aplicado serão encapsuladas. |
RequestFormat |
Controla como as mensagens de solicitação são formatadas. |
ResponseFormat |
Controla como as mensagens de resposta são formatadas. |
UriTemplate |
Especifica o modelo de URI que controla quais solicitações HTTP são mapeadas para a operação de serviço à qual o atributo é aplicado. |
WebHttpBinding
A WebHttpBinding classe incorpora suporte para dados binários XML, JSON e brutos usando o WebMessageEncodingBindingElement. Ele é composto por um HttpsTransportBindingElement, um HttpTransportBindingElement e um objeto WebHttpSecurity. O WebHttpBinding foi projetado para ser usado em conjunto com o WebHttpBehavior.
WebInvokeAttribute
O WebInvokeAttribute atributo é semelhante ao WebGetAttribute, mas é usado para marcar uma operação de serviço como uma que responde a solicitações HTTP diferentes de GET. É um comportamento de operação passiva (os IOperationBehavior métodos não fazem nada) que adiciona metadados à descrição da operação. A aplicação do WebInvokeAttribute não tem efeito, a menos que um comportamento que procure esses metadados na descrição da operação (especificamente, o WebHttpBehavior) seja adicionado à coleção de comportamento do serviço.
O WebInvokeAttribute atributo usa os parâmetros opcionais mostrados na tabela a seguir.
| Parâmetro | Descrição |
|---|---|
BodyStyle |
Controla se as solicitações e respostas enviadas e recebidas da operação de serviço à qual o atributo é aplicado serão encapsuladas. |
Method |
Especifica o método HTTP para o qual a operação de serviço é mapeada. |
RequestFormat |
Controla como as mensagens de solicitação são formatadas. |
ResponseFormat |
Controla como as mensagens de resposta são formatadas. |
UriTemplate |
Especifica o modelo de URI que controla quais solicitações GET são mapeadas para a operação de serviço à qual o atributo é aplicado. |
UriTemplate
A UriTemplate classe permite que você defina um conjunto de URIs estruturalmente semelhantes. Os modelos são compostos por duas partes, um caminho e uma consulta. Um caminho consiste em uma série de segmentos delimitados por uma barra (/). Cada segmento pode ter um valor literal, um valor variável (escrito entre chaves [{ }], restrito para corresponder ao conteúdo de exatamente um segmento) ou um curinga (escrito como um asterisco [*], que corresponde ao "resto do o caminho"), que deve aparecer no final do caminho. A expressão de consulta pode ser totalmente omitida. Se presente, ele especifica uma série não ordenada de pares nome/valor. Os elementos da expressão de consulta podem ser pares literais (?x=2) ou pares de variáveis (?x={value}). Valores não pareados não são permitidos. UriTemplate é usado internamente pelo modelo de programação HTTP da Web do WCF para mapear URIs específicos ou grupos de URIs para operações de serviço.
UriTemplateTable
A UriTemplateTable classe representa um conjunto associativo de UriTemplate objetos associados a um objeto de escolha do desenvolvedor. Ele permite que você corresponda os URIs (Uniform Resource Identifiers) candidatos com os modelos do conjunto e recupere os dados associados aos modelos correspondentes. UriTemplateTable é usado internamente pelo modelo de programação HTTP da Web do WCF para mapear URIs específicos ou grupos de URIs para operações de serviço.
WebServiceHost
WebServiceHost estende ServiceHost para facilitar a hospedagem de um serviço de estilo da Web não SOAP. Se WebServiceHost não encontrar pontos de extremidade na descrição do serviço, ele criará automaticamente um ponto de extremidade padrão no endereço base do serviço. Ao criar um ponto de extremidade HTTP padrão, o WebServiceHost também desabilita a página de Ajuda HTTP e a funcionalidade GET da Linguagem de Descrição dos Serviços Web (WSDL) para que o ponto de extremidade de metadados não interfira no ponto de extremidade HTTP padrão. WebServiceHost também garante que todos os pontos de extremidade que usam WebHttpBinding tenham o WebHttpBehavior obrigatório anexado. Por fim, WebServiceHost configura automaticamente a associação do ponto de extremidade para funcionar com as configurações de segurança do Internet Information Services (IIS) associadas quando usado em um diretório virtual seguro.
WebServiceHostFactory
A WebServiceHostFactory classe é usada para criar dinamicamente um WebServiceHost quando um serviço é hospedado nos Serviços de Informações da Internet (IIS) ou no Serviço de Ativação de Processo do Windows (WAS). Ao contrário de um serviço auto-hospedado, em que o aplicativo de hospedagem instancia o WebServiceHost, os serviços hospedados no IIS ou WAS utilizam esta classe para criar o WebServiceHost para o serviço. O CreateServiceHost(Type, Uri[]) método é chamado quando uma solicitação de entrada para o serviço é recebida.
WebHttpBehavior
A WebHttpBehavior classe fornece os formatadores necessários, seletores de operação e assim por diante, necessários para o suporte ao serviço de estilo Web na camada modelo de serviço. Isso é implementado como um comportamento de ponto de extremidade (usado em conjunto com o WebHttpBinding) e permite que formatadores e seletores de operação sejam especificados para cada ponto de extremidade, o que permite que a mesma implementação de serviço exponha pontos de extremidade SOAP e POX.
Estendendo WebHttpBehavior
WebHttpBehavioré extensível usando vários métodos virtuais: GetOperationSelector(ServiceEndpoint), , GetReplyClientFormatter(OperationDescription, ServiceEndpoint), GetRequestClientFormatter(OperationDescription, ServiceEndpoint), e GetReplyDispatchFormatter(OperationDescription, ServiceEndpoint)GetRequestDispatchFormatter(OperationDescription, ServiceEndpoint). Os desenvolvedores podem derivar uma classe WebHttpBehavior e substituir esses métodos para personalizar o comportamento padrão.
O WebScriptEnablingBehavior é um exemplo de extensão de WebHttpBehavior. WebScriptEnablingBehavior permite que os pontos de extremidade do Windows Communication Foundation (WCF) recebam solicitações HTTP de um cliente ASP.NET AJAX baseado em navegador. O serviço AJAX usando HTTP POST é um exemplo de como usar esse ponto de extensibilidade.
Aviso
Ao usar o WebScriptEnablingBehavior, não há suporte para UriTemplate dentro de atributos WebGetAttribute ou WebInvokeAttribute.
WebHttpDispatchOperationSelector
A classe WebHttpDispatchOperationSelector utiliza as classes UriTemplate e UriTemplateTable para despachar chamadas para operações de serviço.
Compatibilidade
O Modelo de Programação HTTP DA WEB do WCF não usa mensagens baseadas em SOAP e, portanto, não dá suporte aos protocolos WS-*. No entanto, você pode expor o mesmo contrato por dois endpoints diferentes: um usando SOAP e o outro não usando SOAP. Veja como expor um contrato a SOAP e clientes da Web para ver um exemplo.
Segurança
Como o modelo de programação HTTP DA WEB do WCF não dá suporte aos protocolos WS-*, a única maneira de proteger um serviço Web criado no modelo de programação HTTP da Web do WCF é expor seu serviço usando SSL. Para obter mais informações sobre como configurar o SSL com o IIS 7.0 , consulte Como implementar o SSL no IIS.