在IIS7.5上托管WCF服务

时间:2011-09-13 12:28:55

标签: wcf iis-7.5

我是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>

1 个答案:

答案 0 :(得分:4)

这是一般性错误,通常由服务引发的异常引起。不幸的是,由于您的配置中includeExceptionDetailInFaults设置为false,因此您在使用该服务的客户端上看不到任何soap异常详细信息。

首先,在开发环境中设置includeExceptionDetailInFaults = "true",以便您可以看到任何其他异常详细信息。接下来,尝试使用浏览器并直接导航到http://localhost:4567/Service1.svc以查看是否显示了通用服务页面。然后尝试导航到http://localhost:4567/Service1.svc?wsdl以查看是否正确显示了WSDL。在这两种情况下,服务抛出的任何错误都应该抛给浏览器。希望这有助于引导您解决问题的根本原因。如果您仍然无法解决问题,请发布您找到的任何其他信息。祝你好运!