共用方式為


<basicHttpBinding>

表示繫結,Windows Communication Foundation (WCF) 服務使用該繫結來設定和公開端點,這些端點能夠與 ASMX Web 服務、用戶端和其他符合 WS-I Basic Profile 1.1 的服務通訊。

結構描述階層

<system.serviceModel>
  <bindings>
    <basicHttpBinding>

語法

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

屬性和元素

下列各節說明屬性、子項目和父項目。

屬性

屬性 描述

allowCookies

布林值,表示用戶端是否接受 Cookie 並在未來要求時傳播 Cookie。 預設為 false

當您與使用 Cookie 的 ASMX Web 服務互動時,可以使用這個屬性。 如此一來,從伺服器傳回的 Cookie 就一定會自動複製到該服務未來所有的用戶端要求。

bypassProxyOnLocal

布林值,指出本機位址是否略過 Proxy 伺服器。 預設為 false

如果網際網路資源有本機位址,則此資源為本機資源。 本機位址是指位於相同電腦、區域 LAN 或內部網路上的位址,在語法上沒有句號 (.)。 例如,"http://webserver/" 和 "https://localhost/" 這兩個 URI。

設定這個屬性可決定以 BasicHttpBinding 設定的端點在存取本機資源時,是否使用 Proxy 伺服器。 如果這個屬性為 true,則所有對本機網際網路資源的要求都不會使用 Proxy 伺服器。 當這個屬性設定為 true 時,如果想要讓用戶端在與相同電腦上的服務進行交談時通過 Proxy,請使用主機名稱 (而非 localhost)。

當這個屬性設定為 false 時,則所有的網際網路要求都會通過 Proxy 伺服器。

closeTimeout

TimeSpan 值,指定提供用來讓關閉作業完成的時間間隔。 這個值應該大於或等於 Zero。 預設為 00:01:00。

envelopeVersion

指定 SOAP 的版本,用於由此繫結處理的訊息。 唯一的有效值是 Soap11。

hostnameComparisonMode

指定用於剖析 URI 的 HTTP 主機名稱比較模式。 這個屬性的型別為 HostnameComparisonMode,表示比對 URI 時此主機名稱是否會用來取用服務。 預設值為 StrongWildcard,表示比對時忽略主機名稱。

maxBufferPoolSize

整數值,指定配置供從通道接收訊息之訊息緩衝區管理員使用的最大記憶體量。 預設值為 524288 (0x80000) 位元組。

緩衝區管理員會利用緩衝區集區,將使用緩衝區的成本降至最低。 當訊息從通道送出時,服務將需要緩衝區來處理訊息。 如果緩衝區集區中沒有足夠的記憶體可以處理訊息負載,緩衝區管理員就必須從 CLR 堆積配置額外的記憶體,進而增加記憶體回收負荷。 從 CLR 記憶體回收堆積所產生的大量配置表示緩衝區集區太小,而提高這個屬性指定的限制來提供較大的配置,便可改善效能。

maxBufferSize

整數值,指定儲存訊息之緩衝區的大小上限 (以位元組為單位)。在為此繫結設定的端點處理訊息時,可以將訊息儲存在緩衝區中。 預設值為 65,536 位元組。

maxReceivedMessageSize

正整數,定義在使用此繫結設定之通道上可以接收的訊息大小上限 (以位元組為單位,包括標頭)。 如果對收件者而言訊息太大,寄件者便會收到 SOAP 錯誤。 收件者會捨棄訊息,然後在追蹤記錄檔中建立此事件的項目。 預設為 65,536 個位元組。

messageEncoding

定義用來對 SOAP 訊息進行編碼的編碼器。 有效值包括以下的值:

  • Text:使用文字訊息編碼器。

  • Mtom:使用 Message Transmission Organization Mechanism 1.0 (MTOM) 編碼器。

預設為 Text。 此屬性的型別為 WSMessageEncoding

name

包含此繫結之組態名稱的字串。 這個值應該是唯一的,因為它會當做繫結的識別使用。 每一個繫結都有一個 namenamespace 屬性,兩者結合在一起便可在服務的中繼資料中唯一識別各個繫結。 此外,這個名稱在相同型別的繫結中也是唯一的。 從 .NET Framework 4 開始,繫結和行為都不需要有名稱。 如需預設組態和無名稱繫結與行為的詳細資訊,請參閱Simplified ConfigurationSimplified Configuration for WCF Services

namespace

指定繫結的 XML 命名空間。 預設值為 "http://tempuri.org/Bindings"。 每一個繫結都有一個 namenamespace 屬性,兩者結合在一起便可在服務的中繼資料中唯一識別各個繫結。

openTimeout

TimeSpan 值,指定提供用來讓開啟作業完成的時間間隔。 這個值應該大於或等於 Zero。 預設為 00:01:00。

proxyAddress

包含 HTTP Proxy 位址的 URI。 如果 useSystemWebProxy 設定為 true,則這個設定必須為 null。 預設為 null

receiveTimeout

TimeSpan 值,指定提供用來讓接收作業完成的時間間隔。 這個值應該大於或等於 Zero。 預設為 00:10:00。

sendTimeout

TimeSpan 值,指定提供用來讓傳送作業完成的時間間隔。 這個值應該大於或等於 Zero。 預設為 00:01:00。

textEncoding

設定要在繫結上發出訊息時使用的字元集編碼方式。 有效值包括以下的值:

  • BigEndianUnicode:Unicode BigEndian 編碼方式。

  • Unicode:16 位元編碼方式。

  • UTF8:8 位元編碼方式。

預設為 UTF8。 此屬性的型別為 Encoding

transferMode

有效的 TransferMode 值,指定進行要求或回應時,訊息是經過緩衝處理或資料流處理。

useDefaultWebProxy

布林值,指定是否應使用系統自動設定的 HTTP Proxy (如果有的話)。 預設為 true

項目子系

項目 描述

<basicHttpBinding> 的 <security>

定義繫結的安全性設定。 此項目的型別為 BasicHttpSecurityElement

<readerQuotas>

定義 SOAP 訊息複雜度的條件約束,而這些條件約束可由以此繫結所設定的端點處理。 此項目的型別為 XmlDictionaryReaderQuotasElement

父項目

項目 描述

<bindings>

這個項目會保存標準和自訂繫結的集合。

備註

BasicHttpBinding 使用 HTTP 做為傳送 SOAP 1.1 訊息的傳輸。 服務可使用這個繫結公開符合 WS-I BP 1.1 的端點,例如 ASMX 用戶端取用的端點。 同樣地,用戶端可使用 BasicHttpBinding 與公開符合 WS-I BP 1.1 之端點的服務通訊,例如 ASMX Web 服務或使用 BasicHttpBinding 設定的服務。

安全性預設是關閉的,但是可以透過將 <basicHttpBinding> 的 <security> 子項目的模式屬性設定為非 None 的值來新增安全性設定。 根據預設,它使用「文字」訊息編碼和 UTF-8 文字編碼。

範例

下列範例示範 BasicHttpBinding 的使用方式,它利用第一代和第二代 Web 服務來提供 HTTP 通訊和最大的互通性。 用戶端和服務的組態檔中會指定繫結。 繫結型別是使用 <endpoint> 項目的 binding 屬性所指定的。 如果您要設定基本繫結,並變更其部分設定,則必須定義繫結組態。 端點必須使用 <endpoint> 項目的 bindingConfiguration 屬性來按照名稱參考繫結組態,如下列服務的組態程式碼所示。

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

從 .NET Framework 4 開始,繫結和行為都不需要有名稱。 前一個範例的功能可以藉由從端點位址移除 bindingConfiguration 以及從繫結移除名稱的方式達成。

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

如需預設組態和無名稱繫結與行為的詳細資訊,請參閱Simplified ConfigurationSimplified Configuration for WCF Services

另請參閱

參考

Binding
BindingElement
BasicHttpBinding
BasicHttpBindingElement

概念

<binding>

其他資源

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