首页 > 解决方案 > 如何在 app.config 的绑定中设置 MessageVersion?

问题描述

我的 app.config 文件中有一个绑定,如下所示:

 <bindings>    
  <basicHttpBinding>        
    <binding name="WebapiBindingWithCred" maxReceivedMessageSize="2147483647" messageEncoding="Text">
      <readerQuotas maxDepth="32" maxStringContentLength="2147483647"
        maxArrayLength="16348" maxBytesPerRead="4096" maxNameTableCharCount="16384" />
      <security mode="TransportWithMessageCredential">
        <message clientCredentialType="UserName"/>          
      </security>        
    </binding>   
  </basicHttpBinding>
</bindings>

当我使用它时,我得到“无法识别的消息版本”错误作为响应。我读过我应该将我的 MessageVersion 设置为 Soap11,但我在任何地方都找不到这样做的标签。我该怎么做?

标签: c#.netconsole-application

解决方案


您的绑定中需要以下标签:

<textMessageEncoding messageVersion="Soap11" />

但是,您需要使用自定义绑定,而不是 basicHttpBinding:

 <customBinding>  
    <binding name="HttpBinding" >  
        <textMessageEncoding   
            messageVersion="Soap11"/>  
        <httpTransport />  
    </binding>  
 </customBinding> 

推荐阅读