首页 > 解决方案 > 在 Server 2008 R2 中从 .NET Core 调用 SOAP WCF 服务 (.NET 4.5.2) 时出现问题

问题描述

我在 .NET Core 中创建了一个 Web API 服务(我尝试了 2.2 和 3.1)。

它是旧 WCF SOAP 服务 (.NET 4.5.2) 的桥梁,当这两个服务都在我的 Windows 10 开发机器上时,它运行良好。

当 WCF 服务放置在我们的 Windows Server 2008 R2 服务器上时,我收到此错误:

"message": "响应消息的内容类型 text/html; charset=UTF-8 与绑定的内容类型(text/xml; charset=utf-8)不匹配。如果使用自定义编码器,请务必IsContentTypeSupported 方法已正确实现。响应的前 1024 个字节为:'<HTML lang="en"><link rel="alternate" type="text/xml" href="http://testxxxitms-api .xxxbilling.org/Service.svc?迪斯科

错误是我得到一个 HTML 答案而不是 XML,似乎原因是调用以某种方式更改为“迪斯科”调用。我在客户端中唯一更改的是端点地址,它不包含 disco 参数。

我可以使用 SOAP UI 调用 WCF 服务。

我有这些对 System.ServiceModel-** 程序集的引用。

<PackageReference Include="System.Private.ServiceModel" Version="4.7.0" />    
<PackageReference Include="System.ServiceModel.Duplex" Version="4.7.0" />    
<PackageReference Include="System.ServiceModel.Http" Version="4.7.0" />    
<PackageReference Include="System.ServiceModel.NetTcp" Version="4.7.0" />    
<PackageReference Include="System.ServiceModel.Primitives" Version="4.7.0" />
<PackageReference Include="System.ServiceModel.Security" Version="4.7.0" />

什么会导致这种行为?

标签: asp.net-corewcfasp.net-core-webapiwindows-server-2008-r2

解决方案


亚伯拉罕·钱在评论中的投入使我尝试了无数的解决方案。我的结论是它不适用于 Windows Server 2008。

我坚持将服务器升级到 Windows Server 2012,现在它可以工作了。


推荐阅读