Share via


<basicHttpBinding>

Rappresenta un'associazione che può essere utilizzata da un servizio Windows Communication Foundation (WCF) per configurare ed esporre endpoint in grado di comunicare con servizi e client Web basati su ASMX e altri servizi conformi alla specifica WS-I Basic Profile 1.1.

Gerarchia dello schema

<system.serviceModel>
  <bindings>
    <basicHttpBinding>

Sintassi

<basicHttpBinding>
   <binding 
       allowCookies="Boolean"
       bypassProxyOnLocal="Boolean"
       closeTimeout="TimeSpan" 
       envelopeVersion="None/Soap11/Soap12"
       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>

Attributi ed elementi

Nelle sezioni seguenti vengono descritti attributi, elementi figlio ed elementi padre.

Attributi

Attributo Descrizione

allowCookies

Valore booleano che indica se il client accetta cookie e li propaga alle richieste future. Il valore predefinito è false.

È possibile utilizzare questa proprietà quando si interagisce con servizi Web ASMX che utilizzano cookie. In tal modo i cookie restituiti dal server vengono copiati automaticamente in tutte le richieste client future per quel servizio.

bypassProxyOnLocal

Valore booleano che indica se ignorare il server proxy per indirizzi locali. Il valore predefinito è false.

Una risorsa Internet è locale se dispone di un indirizzo locale. Un indirizzo locale è situato nello stesso computer, nella rete LAN o Intranet locale ed è identificato nella sintassi dalla mancanza di un punto (.) come negli URI "http://webserver/" e "https://localhost/".

L'impostazione di questo attributo determina se gli endpoint configurati con BasicHttpBinding utilizzano il server proxy quando accedono alle risorse locali. Se questo attributo è true, le richieste alle risorse Internet locali non utilizzano il server proxy. Quando l'attributo è impostato su true, utilizzare il nome host invece di localhost se si desidera che i client passino da un proxy per comunicare con servizi nello stesso computer.

Se questo attributo è false, tutte le richieste Internet vengono effettuate tramite il server proxy.

closeTimeout

Valore TimeSpan che specifica l'intervallo di tempo fornito per il completamento di un'operazione di chiusura. Questo valore deve essere maggiore o uguale a Zero. L'impostazione predefinita è 00:01:00.

envelopeVersion

Specifica la versione di SOAP utilizzata per i messaggi elaborati da questa associazione. L'unico valore valido è Soap11.

hostnameComparisonMode

Specifica la modalità di confronto del nome host HTTP utilizzata per analizzare gli URI. Questo attributo è di tipo HostnameComparisonMode, il quale indica se il nome host viene utilizzato per raggiungere il servizio in caso di corrispondenza dell'URI. Il valore predefinito è StrongWildcard, che ignora il nome host nella corrispondenza.

maxBufferPoolSize

Valore intero che specifica la quantità massima di memoria allocata al gestore dei buffer dei messaggi che riceve i messaggi dal canale. Il valore predefinito è 524288 (0x80000) byte.

Il gestore dei buffer utilizza un pool di buffer per ridurre al minimo il costo legato all'utilizzo dei buffer. I buffer sono necessari per elaborare i messaggi provenienti dal servizio quando arrivano dal canale. Se la memoria nel pool di buffer non è sufficiente per elaborare il carico dei messaggi, il gestore dei buffer deve allocare altra memoria dall'heap CLR, aumentando l'overhead della procedura di Garbage Collection. Se la quantità di memoria aggiuntiva allocata in questo modo è notevolmente elevata, ciò significa che le dimensioni del pool di buffer sono troppo ridotte e che per migliorare le prestazioni è possibile allocare più risorse a tale pool mediante l'aumento del limite specificato da questo attributo.

maxBufferSize

Un valore intero che specifica la dimensione massima, in byte, di un buffer che memorizza i messaggi mentre vengono elaborati per un endpoint configurato con questa associazione. Il valore predefinito è 65.536 byte.

maxReceivedMessageSize

Numero intero positivo che definisce la dimensione massima del messaggio, incluse le intestazioni, che può essere ricevuto in canale configurato con questa associazione. Il mittente riceve un errore SOAP se il messaggio è troppo grande per il destinatario. Il destinatario elimina il messaggio e crea una voce dell'evento nel registro di traccia. L'impostazione predefinita è 65.536 byte.

messageEncoding

Definisce il codificatore utilizzato per codificare il messaggio SOAP. Di seguito vengono elencati i valori validi:

  • Text: utilizza un codificatore di messaggi di testo.

  • Mtom: utilizza un codificatore Message Transmission Organization Mechanism 1.0 (MTOM).

L'impostazione predefinita è Text. L'attributo è di tipo WSMessageEncoding.

name

Stringa che contiene il nome della configurazione dell'associazione. Questo valore deve essere univoco perché viene utilizzato per identificare l'associazione. Ciascuna associazione è provvista di un attributo name e namespace che insieme la identificano in modo univoco nei metadati del servizio. In aggiunta, il nome è univoco fra associazioni dello stesso tipo. A partire da .NET Framework 4, non è necessario che le associazioni e i comportamenti dispongano di un nome. Per ulteriori informazioni sulla configurazione predefinita e le associazioni e i comportamenti senza nome, vedere Simplified Configuration e Simplified Configuration for WCF Services.

namespace

Specifica lo spazio dei nomi XML dell'associazione. Il valore predefinito è "http://tempuri.org/Bindings". Ciascuna associazione è provvista di un attributo name e namespace che insieme la identificano in modo univoco nei metadati del servizio.

openTimeout

Valore TimeSpan che specifica l'intervallo di tempo fornito per il completamento di un'operazione di apertura. Questo valore deve essere maggiore o uguale a Zero. L'impostazione predefinita è 00:01:00.

proxyAddress

URI che contiene l'indirizzo del proxy HTTP. Se useSystemWebProxy è impostato su true, questa impostazione deve essere null. Il valore predefinito è null.

receiveTimeout

Valore TimeSpan che specifica l'intervallo di tempo fornito per il completamento di un'operazione di ricezione. Questo valore deve essere maggiore o uguale a Zero. L'impostazione predefinita è 00:10:00.

sendTimeout

Valore TimeSpan che specifica l'intervallo di tempo fornito per il completamento di un'operazione di invio. Questo valore deve essere maggiore o uguale a Zero. L'impostazione predefinita è 00:01:00.

textEncoding

Imposta la codifica del set di caratteri da utilizzare per l'emissione dei messaggi nell'associazione. Di seguito vengono elencati i valori validi:

  • BigEndianUnicode: codifica Unicode BigEndian.

  • Unicode: codifica a 16 bit.

  • UTF8: codifica a 8 bit

L'impostazione predefinita è UTF8. L'attributo è di tipo Encoding.

transferMode

Valore TransferMode valido che specifica se i messaggi vengono memorizzati nel buffer o inviati nel flusso in una richiesta o una risposta.

useDefaultWebProxy

Valore booleano che specifica se il proxy HTTP configurato automaticamente del sistema deve essere utilizzato, se disponibile. Il valore predefinito è true.

Elementi figlio

Elemento Descrizione

<security> di <basicHttpBinding>

Definisce le impostazioni di sicurezza per l'associazione. L'elemento è di tipo BasicHttpSecurityElement.

<readerQuotas>

Definisce i vincoli sulla complessità dei messaggi SOAP che possono essere elaborati dagli endpoint configurati con questa associazione. L'elemento è di tipo XmlDictionaryReaderQuotasElement.

Elementi padre

Elemento Descrizione

<bindings>

Questo elemento contiene una raccolta di associazioni standard e personalizzate.

Osservazioni

BasicHttpBinding utilizza HTTP come trasporto per l'invio di messaggi SOAP 1.1. Un servizio può utilizzare questa associazione per esporre endpoint conformi a WS-I BP 1.1, ad esempio quelli utilizzati dai client ASMX. In modo simile, un client può utilizzare BasicHttpBinding per comunicare con servizi che espongono endpoint conformi a WS-I BP 1.1, ad esempio i servizi Web ASMX o i servizi configurati con BasicHttpBinding.

Per impostazione predefinita la sicurezza è disattivata, ma è possibile aggiungerla impostando l'attributo dell'elemento figlio <security> di <basicHttpBinding> su un valore diverso da None. Per impostazione predefinita utilizza una codifica dei messaggi "Text" e una codifica del testo UTF-8.

Esempio

Nell'esempio seguente è dimostrato l'utilizzo di BasicHttpBinding che fornisce la comunicazione HTTP e la interoperabilità massima con servizi Web di prima e seconda generazione. L'associazione è specificata nei file di configurazione per il client e il servizio. Il tipo di associazione specificato utilizzando l'attributo binding dell'elemento <endpoint>. Se si desidera configurare l'associazione di base e modificare alcune delle relative impostazioni, è necessario definire una configurazione di associazione. L'endpoint deve fare riferimento alla configurazione di associazione tramite il nome utilizzando l'attributo bindingConfiguration dell'elemento <endpoint>, come è illustrato nel seguente codice di configurazione del servizio.

<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>

A partire da .NET Framework 4, non è necessario che le associazioni e i comportamenti dispongano di un nome. La funzionalità dall'esempio precedente può essere ottenuta rimuovendo bindingConfiguration dall'indirizzo endpoint e il nome dall'associazione.

<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>

Per ulteriori informazioni sulla configurazione predefinita e le associazioni e i comportamenti senza nome, vedere Simplified Configuration e Simplified Configuration for WCF Services.

Vedere anche

Riferimento

Binding
BindingElement
BasicHttpBinding
BasicHttpBindingElement

Concetti

<binding>

Altre risorse

Windows Communication Foundation Bindings
Configuring System-Provided Bindings
Using Bindings to Configure Services and Clients