我有一个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上安装了证书,据我所知,服务器上的所有内容都配置正确。
事件日志中没有错误消息。
如何找到有关服务无法显示原因的更多错误消息?
答案 0 :(得分:0)
要了解更多信息,请打开wcf日志记录。最简单的方法是使用wcf配置工具。
根据您的评论进行编辑:我们发布服务的方式是使用安装项目创建msi包。需要包含几个输出:
答案 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)