加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-core – .NetStandard或.NET核心中的WSHttpBinding

发布时间:2020-12-16 06:50:56 所属栏目:asp.Net 来源:网络整理
导读:我想在我的应用程序中集成NMVS协议,该应用程序提供用于测试的wsdl文件,该文件是在.net框架库中编写的示例代码. 我想在.netstandard,.netcore或UWP应用程序中测试它,但wsdl文件仅支持.netstandard,.net core和UWP不支持的“WSHttpBinding”. wsdl:binding nam
我想在我的应用程序中集成NMVS协议,该应用程序提供用于测试的wsdl文件,该文件是在.net框架库中编写的示例代码.

我想在.netstandard,.netcore或UWP应用程序中测试它,但wsdl文件仅支持.netstandard,.net core和UWP不支持的“WSHttpBinding”.

<wsdl:binding name="WSHttpBinding_ISinglePackServices" type="ns:ISinglePackServices">



WSHttpBinding binding = new WSHttpBinding();
 binding.Security.Mode =  SecurityMode.Transport;
 binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Certificate;

我使用了basichttpbinding,但是我收到的错误是“内容类型application / soap xml;响应消息的charset = UTF-8与绑定的内容类型(text / xml; charset = utf-8)不匹配.”

解决此问题的其他方法有哪些?

谢谢
伊姆兰·罕

解决方法

这是您的问题的解决方案:

var transportSecurityBinding = new BasicHttpBinding();
transportSecurityBinding.Security.Mode = BasicHttpSecurityMode.Transport;
transportSecurityBinding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Certificate;

var customTransportSecurityBinding = new CustomBinding(transportSecurityBinding);

var textBindingElement = new TextMessageEncodingBindingElement
{
      MessageVersion = MessageVersion.CreateVersion(EnvelopeVersion.Soap12,AddressingVersion.None)
};

// Replace text element to have Soap12 message version
customTransportSecurityBinding.Elements[0] = textBindingElement;

Nicolas Giannone SPRL(https://www.facebook.com/Nicolas.Giannone.SPRL)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读