IIS发布WCF服务 - 失败,没有错误消息

时间:2009-06-20 18:08:03

标签: wcf iis

我有一个WCF服务,我从Visual Studio 2008发布到IIS 6.根据VS的输出窗口,发布成功,没有错误消息或警告。当我查看IIS时,创建了虚拟目录,但目录中没有列出.svc。该目录只有我的web.config和bin。任何调用我的WCF服务的尝试都会失败,因为它们不存在。    如何查看出现错误的错误消息?    通过反复试验,我发现在发布之前更改我的app.config会使服务显示出来。即我的app.config文件包含以下行: <binding ...> <security mode="Transport"> <transport clientCreditionalType="None"/> </security> </binding>

如果我将“传输”切换为“无”,则我的服务会显示在IIS上。但我在服务器上的IIS上安装了证书,据我所知,服务器上的所有内容都配置正确。

事件日志中没有错误消息。

如何找到有关服务无法显示原因的更多错误消息?

3 个答案:

答案 0 :(得分:0)

要了解更多信息,请打开wcf日志记录。最简单的方法是使用wcf配置工具。

根据您的评论进行编辑:我们发布服务的方式是使用安装项目创建msi包。需要包含几个输出:

  1. 主输出(即dll)必须转到bin目录。
  2. 内容输出。您必须创建svc文件并将其标记为内容。

答案 1 :(得分:0)

尝试使用IIS 6.0将WCF项目复制到您的计算机,而不使用发布VS.如果它有帮助,那么问题出在VS内,否则问题出在IIS上。确保IIS机器上安装了.NET Framework 3.5和ASP.NET。然后确保有.svc扩展名的映射处理程序。

希望有所帮助

答案 2 :(得分:0)

要在IIS 7或8中发布WCF服务,您必须在 web.config 中注册 svc 扩展名的处理程序:

<system.webServer>
  <handlers>
    <add name="svc" path="*.svc" verb="*" type="System.ServiceModel.Activation.HttpHandler, System.ServiceModel.Activation, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
  </handlers>
</system.webServer>

(System.ServiceModel,Version = 3.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089 for .Net 3.5)