<ws2007HttpBinding>

定义一个可互操作的绑定,该绑定为正确版本的 SecurityReliableSessionTransactionFlow 绑定元素提供支持。

configuration
  system.serviceModel
    <bindings>
      <ws2007HttpBinding>

语法

<ws2007HttpBinding>
  <binding allowCookies="Boolean"
           bypassProxyOnLocal="Boolean"
           closeTimeout="TimeSpan"
           hostNameComparisonMode="StrongWildCard/Exact/WeakWildcard"
           maxBufferPoolSize="integer"
           maxReceivedMessageSize="Integer"
           messageEncoding="Text/Mtom"
           name="string"
           openTimeout="TimeSpan"
           proxyAddress="URI"
           receiveTimeout="TimeSpan"
           sendTimeout="TimeSpan"
           textEncoding="UnicodeFffeTextEncoding/Utf16TextEncoding/Utf8TextEncoding"
           transactionFlow="Boolean"
           useDefaultWebProxy="Boolean">
    <reliableSession ordered="Boolean"
                     inactivityTimeout="TimeSpan"
                     enabled="Boolean" />
    <security mode="Message/None/Transport/TransportWithCredential">
      <transport clientCredentialType="Basic/Certificate/Digest/None/Ntlm/Windows"
                 proxyCredentialType="Basic/Digest/None/Ntlm/Windows"
                 realm="string" />
        <message clientCredentialType ="Certificate/IssuedToken/None/UserName/Windows"
                 negotiateServiceCredential="Boolean"
                 algorithmSuite="Basic128/Basic192/Basic256/Basic128Rsa15/Basic256Rsa15/TripleDes/TripleDesRsa15/Basic128Sha256/Basic192Sha256/TripleDesSha256/Basic128Sha256Rsa15/Basic192Sha256Rsa15/Basic256Sha256Rsa15/TripleDesSha256Rsa15"
                 establishSecurityContext="Boolean" />
    </security>
    <readerQuotas maxArrayLength="Integer"
                  maxBytesPerRead="Integer"
                  maxDepth="Integer"
                  maxNameTableCharCount="Integer"
                  maxStringContentLength="Integer" />
  </binding>
</ws2007HttpBinding>

特性和元素

下列各节描述了特性、子元素和父元素。

特性

属性 说明
allowCookies 一个值,指示客户端是否接受 cookie 并根据将来的请求对其进行传播。 默认值为 false

在与使用 Cookie 的 ASP.NET Web 服务 (ASMX) 进行交互时,可以使用此属性。 这确保了服务器返回的 Cookie 会自动复制到客户端今后对该服务的所有请求。
bypassProxyOnLocal 一个值,指示是否对本地地址不使用代理服务器。 默认值为 false
closeTimeout 一个 TimeSpan 值,指定完成关闭操作的时间间隔。 此值应大于或等于 Zero。 默认值为 00:01:00。
hostNameComparisonMode 指定用于分析统一资源标识符 (URI) 的 HTTP 主机名比较模式。 此属性的类型为 HostNameComparisonMode,指示在对 URI 进行匹配时,是否使用主机名来访问服务。 默认值为 StrongWildcard,表示忽略匹配项中的主机名。
maxBufferPoolSize 此绑定的最大缓冲池大小。 默认值为 524,288 字节 (512 × 1,024)。 Windows Communication Foundation (WCF) 的许多部件使用缓冲区。 每次使用缓冲区时,创建和销毁它们会占用大量资源,而缓冲区的垃圾回收过程也是如此。 利用缓冲池,可以从缓冲池中获得缓冲区,使用缓冲区,然后在完成工作后将其返回到缓冲池。 这样就避免了创建和销毁缓冲区的系统开销。
maxReceivedMessageSize 使用此绑定配置的通道可以接收的最大消息大小(包括标头),单位为字节。 如果消息超出此限制,则发送方将收到 SOAP 错误。 接收方将删除该消息,并在跟踪日志中创建事件项。 默认值为 65536。
messageEncoding 定义用于对消息进行编码的编码器。 有效值包括以下值:

- Text:使用文本消息编码器。
- Mtom:使用消息传输组织机制 1.0 (MTOM) 编码器。

默认值为 Text

此属性的类型为 WSMessageEncoding
name 绑定的配置名称。 因为此值用作绑定的标识,所以它应该是唯一的。 从 .NET Framework 4 开始,不要求绑定和行为具有名称。 若要详细了解默认配置和无名称的绑定及行为,请参阅简化配置WCF 服务的简化配置
openTimeout 一个 TimeSpan 值,指定为完成打开操作提供的时间间隔。 此值应大于或等于 Zero。 默认值为 00:01:00。
proxyAddress 一个指定 HTTP 代理的地址的 URI。 如果 useSystemWebProxytrue,则此设置必须为 null。 默认为 null
receiveTimeout 一个 TimeSpan 值,指定为完成接收操作提供的时间间隔。 此值应大于或等于 Zero。 默认值为 00:01:00。
sendTimeout 一个 TimeSpan 值,指定为完成发送操作提供的时间间隔。 此值应大于或等于 Zero。 默认值为 00:01:00。
textEncoding 指定要用来在绑定上发出消息的字符集编码。 有效值包括以下值:

- UnicodeFffeTextEncoding:Unicode Big Endian 编码。
- Utf16TextEncoding:16 位编码。
- Utf8TextEncoding:8 位编码。

默认值为 Utf8TextEncoding

此属性的类型为 Encoding
transactionFlow 一个值,指定绑定是否支持流动 WS-Transactions。 默认值为 false
useDefaultWebProxy 一个值,指定是否使用系统的自动配置 HTTP 代理。 默认值为 true

子元素

元素 说明
<security> 定义绑定的安全设置。 此元素的类型为 WSHttpSecurityElement
<readerQuotas> 定义用此绑定配置的终结点可处理的 SOAP 消息的复杂性约束。 此元素的类型为 XmlDictionaryReaderQuotasElement
<reliableSession> 指定是否在通道终结点之间建立可靠会话。

父元素

元素 说明
<bindings> 此元素包含标准绑定和自定义绑定的集合。

备注

WS2007HttpBinding 会添加与 WSHttpBinding 类似的系统提供的绑定,但使用 ReliableSession、Security 和 TransactionFlow 协议的结构化信息标准促进组织 (OASIS) 标准版本。 使用此绑定时,无需对对象模型或默认设置进行任何更改。

示例

<configuration>
  <system.ServiceModel>
    <bindings>
      <ws2007HttpBinding>
        <binding closeTimeout="00:00:10"
                 openTimeout="00:00:20"
                 receiveTimeout="00:00:30"
                 sendTimeout="00:00:40"
                 bypassProxyOnLocal="false"
                 transactionFlow="false"
                 hostNameComparisonMode="WeakWildcard"
                 maxReceivedMessageSize="1000"
                 messageEncoding="Mtom"
                 proxyAddress="http://www.contoso.com"
                 textEncoding="utf-16"
                 useDefaultWebProxy="false">
          <reliableSession ordered="false"
                           inactivityTimeout="00:02:00"
                           enabled="true" />
          <security mode="Transport">
            <transport clientCredentialType="Digest"
                       proxyCredentialType="None"
                       realm="someRealm" />
            <message clientCredentialType="Windows"
                     negotiateServiceCredential="false"
                     algorithmSuite="Aes128"
                     defaultProtectionLevel="None" />
          </security>
        </binding>
      </ws2007HttpBinding>
    </bindings>
  </system.ServiceModel>
</configuration>

另请参阅