我正在努力将网站从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吗?
答案 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" />