共用方式為


<basicHttpBinding>

代表一種綁定,Windows 通訊基礎(WCF)服務可用來配置並暴露能與基於 ASMX 的網路服務及用戶端及符合 WS-I 基本配置檔 1.1 的其他服務通訊的端點。

<configuration>
  <system.serviceModel>
    <bindings>
      <basicHttpBinding>

語法

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

屬性和項目

下列章節說明屬性、子元素和父元素。

Attributes

Attribute Description
allowCookies 一個布林值,表示客戶端是否接受 Cookie,並在未來請求中傳播。 預設值為 false

你可以在與使用 cookie 的 ASMX 網路服務互動時使用此特性。 如此一來,你可以確保從伺服器回傳的 Cookie 會自動複製到未來所有客戶端的請求中。
bypassProxyOnLocal 一個布林值,指示是否要繞過代理伺服器取得本地位址。 預設值為 false

若網際網路資源擁有本地位址,則稱為本地資源。 本地位址是指位於同一台電腦、本地區域網路或內部網路上的位址,且語法上可透過缺少句號(.)來識別,如同 URI http://webserver/http://localhost/

設定此屬性可決定以 BasicHttpBinding 配置的端點在存取本地資源時是否會使用代理伺服器。 若此屬性為 true,則對本地網際網路資源的請求不會使用代理伺服器。 如果你想讓客戶端在同一台機器上與服務通訊時,當此屬性設為 true時,請使用主機名稱(而非 localhost)。

當此屬性為 false時,所有網際網路請求皆透過代理伺服器發出。
closeTimeout 一個 TimeSpan 指定緊密操作完成所需時間間隔的值。 此值應大於或等 Zero於 。 預設值是 00:01:00。
hostNameComparisonMode 指定用於解析 URI 的 HTTP 主機名稱比較模式。 此屬性的型別 HostNameComparisonMode為 ,表示在 URI 匹配時是否使用主機名稱來存取服務。 預設值為 StrongWildcard,忽略了配對中的主機名稱。
maxBufferPoolSize 一個整數值,指定接收通道訊息緩衝區管理者所分配的最大記憶體容量。 預設值為524288(0x80000)位元組。

緩衝區管理器透過使用緩衝池來降低使用緩衝區的成本。 緩衝區是服務在訊息從通道中發出時必須處理的。 若緩衝池中記憶體不足以處理訊息載入,緩衝區管理器必須從 CLR 堆積中分配額外記憶體,這會增加垃圾回收的開銷。 CLR 垃圾堆的大量配置表示緩衝池大小過小,且透過增加此屬性指定的限制,可以藉由較大的配置來提升效能。
maxBufferSize 一個整數值,指定儲存訊息時儲存訊息的最大容量(位元組),以設定此綁定的端點。 預設值為 65,536 位元組。
maxReceivedMessageSize 一個正整數,定義可在設定此綁定的通道接收訊息的最大訊息大小(以位元組計,包含標頭)。 如果訊息對接收端來說過大,發送端會收到 SOAP 錯誤。 接收端會丟棄訊息,並在追蹤日誌中建立事件的條目。 預設為 65,536 位元組。
messageEncoding 定義用於編碼 SOAP 訊息的編碼器。 有效的數值包括以下幾項:

- 文字:使用簡訊編碼器。
- MTOM:使用訊息傳輸組織機制 1.0(MTOM)編碼器。

預設為 Text。 此屬性的類型 WSMessageEncoding為 。
name 一個包含綁定設定名稱的字串。 此值在同類型綁定中應是唯一的。 從 .NET Framework 4 開始,綁定和行為不再需要名稱。 欲了解更多關於預設設定及無名綁定與行為的資訊,請參閱簡化設定與簡化配置(Simplified Configuration for WCF Services)。
openTimeout 一個 TimeSpan 指定開啟操作完成所需時間區間的值。 此值應大於或等 Zero於 。 預設值是 00:01:00。
proxyAddress 一個包含 HTTP 代理位址的 URI。 若 useSystemWebProxy 設為 true,則此設定必須為 null。 預設值為 null
receiveTimeout 一個 TimeSpan 指定接收操作完成所需時間區間的值。 此值應大於或等 Zero於 。 預設值是 00:10:00。
sendTimeout 一個 TimeSpan 指定傳送操作完成所需時間間隔的值。 此值應大於或等 Zero於 。 預設值是 00:01:00。
textEncoding 設定字元集編碼用於綁定上的訊息輸出。 有效的數值包括以下幾項:

- BigEndian Unicode:Unicode BigEndian 編碼。
- Unicode:16位元編碼。
- UTF8:8位元編碼

預設是 UTF8。 此屬性的類型 Encoding為 。
transferMode 一個有效 TransferMode 值,指定訊息在請求或回應時是緩衝還是串流。
useDefaultWebProxy 一個布林值,指定是否應使用系統自動設定的 HTTP 代理(若有的話)。 預設值為 true

子專案

元素 Description
<安全> 定義綁定的安全設定。 此元素的類型 BasicHttpSecurityElement為 。
<讀者配額> 定義了由端點可處理的 SOAP 訊息複雜度的限制,這些訊息可由配置為此綁定的端點所能處理。 此元素的類型 XmlDictionaryReaderQuotasElement為 。

父項目

元素 Description
<裝訂> 此元素包含標準與自訂裝訂的集合。

備註

BasicHttpBinding 使用 HTTP 作為傳送 SOAP 1.1 訊息的傳輸方式。 服務可利用此綁定來暴露符合 WS-I BP 1.1 的端點,例如 ASMX 用戶端所使用的端點。 同樣地,用戶端也可以利用 BasicHttpBinding 與暴露符合 WS-I BP 1.1 端點的服務溝通,例如 ASMX 網路服務或以 BasicHttpBinding 設定的服務。

安全性預設是關閉的,但可以透過將安全>子元素的 mode 屬性<設定為非 None的值來新增。 預設採用「Text」訊息編碼及 UTF-8 文字編碼。

範例 1

以下範例展示了 的使用 BasicHttpBinding 方式,提供 HTTP 通訊及與第一代及第二代 Web 服務的最大互通性。 綁定方式會在客戶端與服務的設定檔中指定。 綁定類型是利用 binding 元素 <endpoint> 屬性來指定。 如果你想設定基本綁定並更改部分設定,就必須先定義綁定設定。 端點必須以bindingConfiguration<endpoint>元素屬性名稱參照綁定組態,如下方服務的組態代碼所示。

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

範例 2

從 .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 Configuration for WCF Services)。

另請參閱