我们在我们的网站上使用 ASP.NET 4.6(MVC 和 Web API)。现在我们需要为外部服务提供一个“webhook”,而他们的客户端只支持 SOAP 1.1(并且不运行 .NET)。
我一直在尝试使用编程配置和 Web.config 配置构建外部 SOAP 1.1 可以使用的 WCF 服务,但我无法从我自己的测试客户端(生成使用 Visual Studio 2015)。
所有文档似乎都不准确(例如,https: //msdn.microsoft.com/en-us/library/ms731361(v=vs.110).aspx 中的信息不起作用;没有“envelopeVersion”属性更多)或用于以前版本的 Visual Studio 或 ASP.NET 或 WCF。此外,文档似乎表明 basicHttpBinding 意味着 SOAP 1.1,但似乎并非如此。
我对此不使用 WCF 很好,但我不知道改用什么。如果 ASMX 甚至可以在 ASP.NET 4.6 上使用,我不确定 ASMX 是否能解决问题。
我能够提供的所有工作服务实例仍会在响应中发出非 SOAP 1.1 名称空间或类似名称,从而在客户端产生错误。
我目前唯一可行的解决方案是使用 MVC 或 Web API 并手动解析 HttpRequestMessage 并返回手动制作的 SOAP 1.1 响应,这是一个非常脆弱的 hack。