服务参考问题
本文关键字:问题 参考 服务 | 更新日期: 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);