部署到IIS 7时诊断跟踪日志记录不起作用

时间:2010-06-24 20:32:08

标签: c# asp.net iis-7

我正在努力将网站从IIS 6迁移到IIS 7,但我无法看到所有日志。我的system.diagnostics配置如下:

<system.diagnostics>
  <trace autoflush="true"></trace>
  <sources>
    <source name="Assembly1" switchValue="All">
      <listeners>
        <add name="DiagnosticMessageTraceListener"
             type="System.Diagnostics.TextWriterTraceListener"
             traceOutputOptions="ProcessId, ThreadId, DateTime"
             initializeData="E:\Inetpub\logs\App\Assembly1.log" />
      </listeners>
    </source>
    <source name="Assembly2" switchValue="All">
      <listeners>
        <add name="DiagnosticMessageTraceListener"
             type="System.Diagnostics.TextWriterTraceListener"
             traceOutputOptions="ProcessId, ThreadId, DateTime"
             initializeData="E:\Inetpub\logs\App\Assembly2.log" />
      </listeners>
    </source>
    <source name="Assebly3" switchValue="All">
      <listeners>
        <add name="DiagnosticMessageTraceListener"
             type="System.Diagnostics.TextWriterTraceListener"
             traceOutputOptions="ProcessId, ThreadId, DateTime"
             initializeData="E:\Inetpub\logs\App\Assembly3.log" />
      </listeners>
    </source>
    <source name="System.ServiceModel" switchValue="All" propagateActivity="true">
      <listeners>
        <add name="DiagnosticMessageTraceListener"
             type="System.Diagnostics.XmlWriterTraceListener"
             initializeData="E:\Inetpub\logs\App\ServiceTrace.svclog" />
      </listeners>
    </source>
    <source name="System.ServiceModel.MessageLogging" switchValue="All">
      <listeners>
        <add name="DiagnosticMessageTraceListener"
             type="System.Diagnostics.XmlWriterTraceListener"
             initializeData="E:\Inetpub\logs\App\ServiceMessages.svclog" />
      </listeners>
    </source>
  </sources>
  <switches>
    <add name="System.Net" value="Verbose" />
    <add name="System.Net.Sockets" value="Verbose" />
  </switches>
</system.diagnostics>

如果我使用ASP.Net Web服务器或本地IIS在本地运行应用程序,我将获取所有日志文件。将应用程序部署到IIS 7后,我只获取System.ServiceModel日志。我已经确认该目录存在,并且我已经完全控制了所有人。我还重新启动了服务和站点,试图强制日志刷新。我刚刚尝试了解这个东西,所以我还安装了跟踪和日志工具角色服务。我仍然没有得到我的申请日志。

我还尝试了一种实现,我记录到EventLog而不是跟踪日志文件。这也表现出相同的行为。在本地工作并部署到本地IIS但在部署到实际服务器时不工作。我登录到应用程序日志,在我的IIS7机器上,我给了HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ services \ eventlog \ Application的完全控制权限。

似乎我必须在这里遗漏一些东西。在IIS 7中部署时,我无法从这两种不同的日志记录实现中获取任何信息。我​​甚至不确定这里常见的是什么。 EventLog.WriteEntry和Trace.TraceEvent都使用WCF吗?

2 个答案:

答案 0 :(得分:2)

让每个人都拥有对E:\ Inetpub \ logs \ App \

的完全访问权限

关于其他权限问题,了解有关用户帐户的IIS 7更改

http://learn.iis.net/page.aspx/110/changes-between-iis-60-and-iis-7-security/

答案 1 :(得分:0)

您可能希望将日志文件移出Inetpub目录。我当然做到了,即使我为IIS池用户设置了正确的权限。

尝试<initializeData="E:\logs\Apps\ServiceTrace.svclog" />