我有一个托管在 Windows 服务(Selfhost)中的简单 Webserivce(WCF)。服务的声明如下所示:
<service behaviorConfiguration="MyApp.ServiceImplementation.MyAppIntegration_Behavior" name="MyApp.ServiceImplementation.MyAppIntegration">
<endpoint binding="basicHttpBinding" bindingConfiguration="BasicMyAppIntegration" bindingNamespace="MyApp.ServiceImplementation" contract="MyApp.ServiceContracts.IMyAppIntegration"/>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
<host>
<baseAddresses>
<add baseAddress="http://localhost:8008/MyAppServiceutv/Integration"/>
</baseAddresses>
</host>
</service>
我可以用这个 URL 浏览 WSDL:
http://localhost:8008/MyAppServiceutv/Integration?wsdl
在 Visual Studio 2012 中添加服务引用时,出现此异常:
例外
该文件已被理解,但无法处理。
- WSDL 文档包含无法解析的链接。
- 下载“ ”时出错
http://localhost:8008/MyAppServiceutv/Integration?xsd=xsd0
。 - 无法连接到远程服务器
元数据包含无法解析的引用:“ http://MyComputer:8008/MyAppServiceutv/Integration?wsdl
”。内容类型应用程序/soap+xml;charset=utf-8 不受 service 支持http://MyComputer:8008/MyAppServiceutv/Integration?wsdl
。客户端和服务绑定可能不匹配。远程服务器返回错误:(415)无法处理消息,因为内容类型'application/soap+xml; charset=utf-8' 不是预期的类型 'text/xml; charset=utf-8'.. 如果在当前解决方案中定义了服务,请尝试构建解决方案并再次添加服务引用。
迁移到开发环境
将服务移至开发计算机时,一切正常吗?为什么我会在一个环境中遇到上述问题?这可能是由于严格的安全限制吗?