服务参考问题

本文关键字:问题 参考 服务 | 更新日期: 2023-09-27 18:06:24

我创建了一个控制台应用程序来使用web服务。当我调用web服务时,我得到下面的exception

传入消息(Soap11 (http://schemas.xmlsoap.org/soap/envelope/))的信封版本与编码器(Soap12 (http://www.w3.org/2003/05/soap-envelope))的信封版本不匹配。确保绑定配置为与预期消息相同的版本。

这是我的配置。你能帮我修一下吗?

<wsHttpBinding>   
   <binding name="SecurityDemo">    
      <security mode="Transport">
         <transport clientCredentialType="Certificate" />
      </security>
   </binding>
</wsHttpBinding>
<endpoint name="endpointname" 
    address="URL"
    binding="wsHttpBinding" bindingConfiguration="SecurityDemo"
    contract="contractname" />

服务参考问题

通过采用wsHttpBinding,您基本上是在强迫您的客户端使用Soap12。将其更改为BasicHttpBinding,看看是否会得到不同的结果,如果不需要Soap12特性,请保留它。更多细节请点击

在。net 6中,我可以这样做:

// In Program.cs ...
var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();
// ...
app.UseSoapEndpoint<IMyServiceContract>("/MyService.asmx", new SoapEncoderOptions()
{
    // Use SOAP version 1.2 (aka Soap12)
    MessageVersion = MessageVersion.Soap12WSAddressingAugust2004
}, caseInsensitivePath: true);