代表一種綁定,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)。