2010-06-29 91 views
5

我已经通过 他们是在一个IIS应用程序,从而出现被托管的Web安装项目部署到服务器的几个WCF服务的任何信息来运行精细。WCF日志记录不工作,试图让为什么服务不工作

但是当我尝试导航到WSDL,没有被发现。

我试图建立诊断日志记录,以获得一些信息。

我从这里遵循的建议:wcf trying to set up tracing to debug, not writing to log file

而且,我已经试过什么是这里的参考MSDN文档中:http://msdn.microsoft.com/en-us/library/aa702726.aspx“部署或调试建议设置”下..我的web.config有相同组态。但是没有创建日志文件。

没有在事件查看器有用。

任何想法? 谢谢!

回答

3

可能是一个权限问题; IIRC那些不会总是在事件日志中出现。确保运行的用户IIS对日志文件路径具有写入权限。

+0

感谢您的想法。我暂时给了'每个人'完全控制c:\ logs,但还没有写完。 – 2010-06-29 18:36:05

+0

嗯...做IIS日志表明请求正在处理?什么是HTTP响应代码? – Randolpho 2010-06-29 18:42:46

+0

有趣的是,当我尝试访问它时,IIS日志中没有任何显示。 – 2010-06-29 19:45:34

2

这通常是我使用的诊断配置。似乎为我工作。

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    ... 
    <system.diagnostics> 
    <trace autoflush="true" /> 
    <sources> 
     <source name="System.ServiceModel" 
       switchValue="Verbose"> 
     <listeners> 
      <add name="sdt" 
       type="System.Diagnostics.XmlWriterTraceListener" 
       initializeData="D:\wcfLog.svcLog" /> 
     </listeners> 
     </source> 
    </sources> 
    </system.diagnostics> 
</configuration> 

如果您没有得到任何输出,可能是因为您的服务未正确启动。 ServiceHost必须启动诊断才能输出任何内容。即使您的站点正在运行,但使用IIS并不意味着ServiceHost正确启动。这通常是一个配置问题。如果网站中存在未处理的异常,我不是网络人员,但IIS不会写入EventViewer?

此外,您可以尝试创建一个自定义ServiceHostFactory。这样你的代码控制了ServiceHost的创建,你可以捕获任何异常并自行记录它们。

在IIS中创建自定义的ServiceHost - >LINK

1

这是一个老问题,但任何人的到这个问题谁可能绊倒的好处:

  1. 确保您已配置两个系统.diagnosticsSystem.serviceModel/diagnostics部分已配置。
  2. 确保您在正确的App.config/Web.config文件中配置了它们。需要注意的一点是,多个配置文件可以在项目中存在,并使用了一个依赖于构建配置

个人而言,我有非常相同的症状,直到我发现我把部分 下的app.config(在我的情况下,客户端跟踪),而不是 app.DebugLocal.config。后者被用作我的构建配置设置为DebugLocal