C# 如何将跟踪输出发送到文件系统中的文件?

C# 如何将跟踪输出发送到文件系统中的文件?,c#,.net,asp.net,trace,C#,.net,Asp.net,Trace,我已将以下代码添加到我的web.config文件中: <system.diagnostics> <trace autoflush="false" indentsize="4" > <listeners> <add name="myListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="

我已将以下代码添加到我的web.config文件中:

<system.diagnostics>
    <trace autoflush="false" indentsize="4" >
      <listeners>
        <add name="myListener"
          type="System.Diagnostics.TextWriterTraceListener"
          initializeData="d:\debugging.txt" />
        <remove name="Default"></remove>
      </listeners>
    </trace>
  </system.diagnostics>
但是,我看不到在我的d:驱动器上创建的任何“debug.txt”文件,并且没有跟踪输出


我缺少什么吗?

您需要跟踪到ASP.NET服务具有写入权限的目录


我想做的是离开默认的侦听器,运行TechNet DebugView,它可以选择保存或记录到文件。

对于文件,您需要使用
autoflush=“true”
。是的,在设置autoflush=“true”后,跟踪输出将进入目标文件,但来自以下行:HttpContext.Current.trace.Write(sID+“跟踪id”); 不是从System.Diagnostics.Trace。如果我从System.Web configSection中删除writeToDiagnosticsTrace=“true”属性,则HttpContext跟踪也不起作用,这一点很明显。ASP.NET会在对页面启用跟踪时显示跟踪消息。(
trace.axd TraceViewer
)。要将跟踪消息路由到ASP.NET网页,必须添加
WebGetRaceListener
对象。若要在ASP.NET页面之外的上下文中查看ASP.NET和System.Diagnostics跟踪消息,请使用
TextWriterTraceListener
对象将跟踪消息写入文件。我已将文件夹配置为对ASP.NET计算机帐户具有完全控制权,现在已创建该文件,但该文件为空,不包含任何跟踪输出。我的页面上有Trace=“True”,我可以在浏览器中看到页面上的跟踪输出。是的,在设置autoflush=“True”后,跟踪输出进入目标文件,但来自以下行:HttpContext.Current.Trace.Write(sID+“跟踪id”);不是从System.Diagnostics.Trace。如果我从System.Web configSection中删除writeToDiagnosticsTrace=“true”属性,那么HttpContext跟踪也不起作用,这是显而易见的。必须定义跟踪符号,如果未定义,则HttpContext.Current.Trace的跟踪输出也不会写入该文件。我相信这包含了您需要的所有信息:如果无法访问生产环境,则TechNet DebugView无效
System.Diagnostics.Trace.Write(sID + " tracing id");