我是wcf的新手。我使用http://debugmode.net/2010/09/07/walkthrough-on-creating-wcf-4-0-service-and-hosting-in-iis-7-5/
中的教程在iis 7.5上创建并托管了简单的wcf服务一切顺利,直到我尝试使用此服务。当我尝试在我的客户端添加服务引用时,它会出现以下错误
元数据包含无法解析的引用: 的 'http://本地主机:4567 / Service1.svc WSDL'。 WSDL文档包含 无法解决的链接。下载时出错 的 'http://本地主机:4567 / Service1.svc XSD = xsd0'。潜在的 连接已关闭:接收时发生意外错误。 无法从传输连接中读取数据:现有数据 连接被远程主机强行关闭。现有的 连接被远程主机强制关闭元数据包含一个 无法解决的参考: 的 'http://本地主机:4567 / Service1.svc'。内容类型 应用/肥皂+ xml的;服务不支持charset = utf-8 http://localhost:4567/Service1.svc。客户端和服务绑定 可能不匹配。远程服务器返回错误:(415)不能 处理消息因为内容类型'application / soap + xml; charset = utf-8'不是预期的类型'text / xml;字符集= UTF-8' 。如果 该服务在当前解决方案中定义,尝试构建 解决方案并再次添加服务引用。
我的服务的web.config包含
<?xml version="1.0"?>
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0" />
</system.web>
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior>
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
</system.serviceModel>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
答案 0 :(得分:4)
这是一般性错误,通常由服务引发的异常引起。不幸的是,由于您的配置中includeExceptionDetailInFaults
设置为false,因此您在使用该服务的客户端上看不到任何soap异常详细信息。
首先,在开发环境中设置includeExceptionDetailInFaults = "true"
,以便您可以看到任何其他异常详细信息。接下来,尝试使用浏览器并直接导航到http://localhost:4567/Service1.svc以查看是否显示了通用服务页面。然后尝试导航到http://localhost:4567/Service1.svc?wsdl以查看是否正确显示了WSDL。在这两种情况下,服务抛出的任何错误都应该抛给浏览器。希望这有助于引导您解决问题的根本原因。如果您仍然无法解决问题,请发布您找到的任何其他信息。祝你好运!