【发布时间】:2017-07-06 23:12:57
【问题描述】:
我正在将一个站点从 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 日志。我已经验证了该目录存在并且我已经完全控制了每个人。我还重新启动了服务和站点,试图强制刷新日志。我一直在尝试从这件事中获取日志,所以我还安装了 Tracing and Logging Tools 角色服务。我仍然没有收到我的应用程序日志。
我还尝试了一个实现,我登录到 EventLog 而不是跟踪日志文件。这也表现出相同的行为。在本地和部署到本地 IIS 时工作,但在部署到实际服务器时不工作。我登录到应用程序日志,并在我的 IIS7 机器上授予 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog\Application 完全控制权限。
似乎我必须在这里遗漏一些东西。在 IIS 7 中部署时,我无法从这两种不同的日志记录实现中获取任何信息。我什至不确定这里有什么共同点。 EventLog.WriteEntry 和 Trace.TraceEvent 都使用 WCF 吗?
【问题讨论】: