<basicHttpBinding>
Representa um enlace que um serviço windows Communication Foundation (WCF) pode utilizar para configurar e expor pontos finais que são capazes de comunicar com clientes e serviços Web baseados em ASMX e outros serviços em conformidade com o WS-I Basic Profile 1.1.
<configuração>
<system.serviceModel>
<enlaces>
<basicHttpBinding>
Sintaxe
<basicHttpBinding>
<binding allowCookies="Boolean"
bypassProxyOnLocal="Boolean"
closeTimeout="TimeSpan"
hostNameComparisonMode="StrongWildCard/Exact/WeakWildcard"
maxBufferPoolSize="Integer"
maxBufferSize="Integer"
maxReceivedMessageSize="Integer"
messageEncoding="Text/Mtom"
name="String"
openTimeout="TimeSpan"
proxyAddress="URI"
receiveTimeout="TimeSpan"
sendTimeout="TimeSpan"
textEncoding="UnicodeFffeTextEncoding/Utf16TextEncoding/Utf8TextEncoding"
transferMode="Buffered/Streamed/StreamedRequest/StreamedResponse"
useDefaultWebProxy="Boolean">
<security mode="None/Transport/Message/TransportWithMessageCredential/TransportCredentialOnly">
<transport clientCredentialType="None/Basic/Digest/Ntlm/Windows/Certificate"
proxyCredentialType="None/Basic/Digest/Ntlm/Windows"
realm="String" />
<message algorithmSuite="Basic128/Basic192/Basic256/Basic128Rsa15/Basic256Rsa15/TripleDes/TripleDesRsa15/Basic128Sha256/Basic192Sha256/TripleDesSha256/Basic128Sha256Rsa15/Basic192Sha256Rsa15/Basic256Sha256Rsa15/TripleDesSha256Rsa15"
clientCredentialType="UserName/Certificate" />
</security>
<readerQuotas maxArrayLength="Integer"
maxBytesPerRead="Integer"
maxDepth="Integer"
maxNameTableCharCount="Integer"
maxStringContentLength="Integer" />
</binding>
</basicHttpBinding>
Atributos e Elementos
As secções seguintes descrevem atributos, elementos subordinados e elementos principais.
Atributos
Atributo | Descrição |
---|---|
allowCookies |
Um valor booleano que indica se o cliente aceita cookies e os propaga em pedidos futuros. A predefinição é false .Pode utilizar esta propriedade quando interage com serviços Web ASMX que utilizam cookies. Desta forma, pode certificar-se de que os cookies devolvidos do servidor são copiados automaticamente para todos os futuros pedidos de cliente para esse serviço. |
bypassProxyOnLocal |
Um valor booleano que indica se deve ignorar o servidor proxy para endereços locais. A predefinição é false .Um recurso da Internet é local se tiver um endereço local. Um endereço local é um endereço que está no mesmo computador, na LAN local ou na intranet e é identificado, sintaticamente, pela falta de um ponto final (.) como nos URIs http://webserver/ e http://localhost/ .Definir este atributo determina se os pontos finais configurados com o BasicHttpBinding utilizam o servidor proxy ao aceder aos recursos locais. Se este atributo for true , os pedidos para recursos de Internet locais não utilizam o servidor proxy. Utilize o nome do anfitrião (em vez de localhost) se pretender que os clientes utilizem um proxy quando falarem com serviços no mesmo computador quando este atributo estiver definido como true .Quando este atributo é false , todos os pedidos da Internet são feitos através do servidor proxy. |
closeTimeout |
Um TimeSpan valor que especifica o intervalo de tempo fornecido para a conclusão de uma operação de fecho. Este valor deve ser maior ou igual a Zero. A predefinição é 00:01:00. |
hostNameComparisonMode |
Especifica o modo de comparação de nomes de anfitrião HTTP utilizado para analisar URIs. Este atributo é do tipo HostNameComparisonMode, que indica se o nome do anfitrião é utilizado para aceder ao serviço quando corresponde ao URI. O valor predefinido é StrongWildcard, que ignora o nome do anfitrião na correspondência. |
maxBufferPoolSize |
Um valor inteiro que especifica a quantidade máxima de memória alocada para utilização pelo gestor das memórias intermédias de mensagens que recebem mensagens do canal. O valor predefinido é 524288 (0x80000) bytes. O Gestor de Memória Intermédia minimiza o custo da utilização de memórias intermédias com um conjunto de memória intermédia. As memórias intermédias são necessárias para processar mensagens pelo serviço quando saem do canal. Se não existir memória suficiente no conjunto de memória intermédia para processar a carga de mensagens, o Gestor de Memória Intermédia tem de alocar memória adicional da área dinâmica para dados CLR, o que aumenta a sobrecarga da libertação da memória. A alocação extensiva da área de memória do CLR é uma indicação de que o tamanho do conjunto de memória intermédia é demasiado pequeno e que o desempenho pode ser melhorado com uma alocação maior ao aumentar o limite especificado por este atributo. |
maxBufferSize |
Um valor inteiro que especifica o tamanho máximo, em bytes, de uma memória intermédia que armazena mensagens enquanto são processadas para um ponto final configurado com este enlace. O valor predefinido é 65 536 bytes. |
maxReceivedMessageSize |
Um número inteiro positivo que define o tamanho máximo da mensagem, em bytes, incluindo cabeçalhos, para uma mensagem que pode ser recebida num canal configurado com este enlace. O remetente recebe uma falha SOAP se a mensagem for demasiado grande para o recetor. O recetor remove a mensagem e cria uma entrada do evento no registo de rastreio. A predefinição é 65 536 bytes. |
messageEncoding |
Define o codificador utilizado para codificar a mensagem SOAP. Os valores válidos incluem o seguinte: - Texto: utilize um codificador de mensagens sms. - Mtom: utilize um codificador MTOM (Message Transmission Organization Mechanism 1.0). A predefinição é Texto. Este atributo é do tipo WSMessageEncoding. |
name |
Uma cadeia que contém o nome de configuração do enlace. Este valor deve ser exclusivo entre enlaces do mesmo tipo. A partir do .NET Framework 4, os enlaces e comportamentos não têm de ter um nome. Para obter mais informações sobre a configuração predefinida e os enlaces e comportamentos sem nome, veja Configuração Simplificada e Configuração Simplificada para os Serviços WCF. |
openTimeout |
Um TimeSpan valor que especifica o intervalo de tempo fornecido para a conclusão de uma operação aberta. Este valor deve ser maior ou igual a Zero. A predefinição é 00:01:00. |
proxyAddress |
Um URI que contém o endereço do proxy HTTP. Se useSystemWebProxy estiver definida como true , esta definição tem de ser null . A predefinição é null . |
receiveTimeout |
Um TimeSpan valor que especifica o intervalo de tempo fornecido para a conclusão de uma operação de receção. Este valor deve ser maior ou igual a Zero. A predefinição é 00:10:00. |
sendTimeout |
Um TimeSpan valor que especifica o intervalo de tempo fornecido para a conclusão de uma operação de envio. Este valor deve ser maior ou igual a Zero. A predefinição é 00:01:00. |
textEncoding |
Define a codificação do conjunto de carateres a utilizar para emitir mensagens no enlace. Os valores válidos incluem o seguinte: - BigEndianUnicode: codificação Unicode BigEndian. - Unicode: codificação de 16 bits. - UTF8: codificação de 8 bits A predefinição é UTF8. Este atributo é do tipo Encoding. |
transferMode |
Um valor válido TransferMode que especifica se as mensagens são transmitidas em memória intermédia ou transmitidas em fluxo num pedido ou resposta. |
useDefaultWebProxy |
Um valor booleano que especifica se o proxy HTTP configurado automaticamente do sistema deve ser utilizado, se disponível. A predefinição é true . |
Elementos Subordinados
Elemento | Descrição |
---|---|
<segurança> | Define as definições de segurança do enlace. Este elemento é do tipo BasicHttpSecurityElement. |
<readerQuotas> | Define as restrições sobre a complexidade das mensagens SOAP que podem ser processadas por pontos finais configurados com este enlace. Este elemento é do tipo XmlDictionaryReaderQuotasElement. |
Elementos Principais
Elemento | Descrição |
---|---|
<enlaces> | Este elemento contém uma coleção de enlaces padrão e personalizados. |
Observações
O BasicHttpBinding utiliza HTTP como transporte para enviar mensagens SOAP 1.1. Um serviço pode utilizar este enlace para expor pontos finais em conformidade com a BP 1.1 do WS-I, como os que os clientes ASMX consomem. Da mesma forma, um cliente pode utilizar o BasicHttpBinding para comunicar com serviços que expõem pontos finais em conformidade com a BP 1.1 do WS-I, como serviços Web ASMX ou serviços configurados com o BasicHttpBinding.
A segurança está desativada por predefinição, mas pode ser adicionada a definição do atributo de modo do <elemento subordinado de segurança> para um valor diferente de None
. Utiliza uma codificação de mensagens "Texto" e codificação de texto UTF-8 por predefinição.
Exemplo 1
O exemplo seguinte demonstra a utilização de BasicHttpBinding que fornece comunicação HTTP e a máxima interoperabilidade com serviços Web de primeira e segunda geração. O enlace é especificado nos ficheiros de configuração do cliente e do serviço. O tipo de enlace é especificado com o binding
atributo do <endpoint>
elemento . Se quiser configurar o enlace básico e alterar algumas das respetivas definições, é necessário definir uma configuração de enlace. O ponto final tem de referenciar a configuração de enlace por nome através bindingConfiguration
do atributo do <endpoint>
elemento, conforme mostrado no seguinte código de configuração para o serviço.
<system.serviceModel>
<services>
<service type="Microsoft.ServiceModel.Samples.CalculatorService"
behaviorConfiguration="CalculatorServiceBehavior">
<endpoint address=""
binding="basicHttpBinding"
bindingConfiguration="Binding1"
contract="Microsoft.ServiceModel.Samples.ICalculator" />
</service>
</services>
<bindings>
<basicHttpBinding>
<binding name="Binding1"
hostNameComparisonMode="StrongWildcard"
receiveTimeout="00:10:00"
sendTimeout="00:10:00"
openTimeout="00:10:00"
closeTimeout="00:10:00"
maxReceivedMessageSize="65536"
maxBufferSize="65536"
maxBufferPoolSize="524288"
transferMode="Buffered"
messageEncoding="Text"
textEncoding="utf-8"
bypassProxyOnLocal="false"
useDefaultWebProxy="true">
<security mode="None" />
</binding>
</basicHttpBinding>
</bindings>
</system.serviceModel>
Exemplo 2
A partir do .NET Framework 4, não são necessários enlaces e comportamentos para ter um nome. A funcionalidade do exemplo anterior pode ser obtida ao remover o bindingConfiguration do endereço do ponto final e o nome do enlace.
<system.serviceModel>
<services>
<service type="Microsoft.ServiceModel.Samples.CalculatorService"
behaviorConfiguration="CalculatorServiceBehavior">
<endpoint address=""
binding="basicHttpBinding"
contract="Microsoft.ServiceModel.Samples.ICalculator" />
</service>
</services>
<bindings>
<basicHttpBinding>
<binding hostNameComparisonMode="StrongWildcard"
receiveTimeout="00:10:00"
sendTimeout="00:10:00"
openTimeout="00:10:00"
closeTimeout="00:10:00"
maxReceivedMessageSize="65536"
maxBufferSize="65536"
maxBufferPoolSize="524288"
transferMode="Buffered"
messageEncoding="Text"
textEncoding="utf-8"
bypassProxyOnLocal="false"
useDefaultWebProxy="true">
<security mode="None" />
</binding>
</basicHttpBinding>
</bindings>
</system.serviceModel>
Para obter mais informações sobre a configuração predefinida e os enlaces e comportamentos sem nome, veja Configuração Simplificada e Configuração Simplificada para os Serviços WCF.