在发布模式下调试符号

noj*_*noj 6 c# asp.net debugging

在ASP.NET 2.0网站上,我记录了未处理的异常的详细信息.我想记录源文件名和行号,但是当发生异常时我不会在堆栈跟踪中得到它.原因是我在web.config编译设置中有debug ="false"(它是一个生产站点),因此服务器上没有生成PDB文件.有没有办法让ASP.NET在发布模式下生成调试符号文件?我不想预编译该网站.

noj*_*noj 5

好的,我找到了答案.您可以设置debug ="false"以获得优化,然后在system.codedom编译器设置中设置compilerOptions ="/ debug:pdbonly"以获取符号.这是相关的web.config摘录:

<system.web>
  ....
  <compilation debug="false" defaultLanguage="c#">
  ...
  </compilation>
</system.web>
<system.codedom>
  <compilers>
    <compiler language="c#;cs;csharp" extension=".cs" warningLevel="4"
        type="Microsoft.CSharp.CSharpCodeProvider,System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
        compilerOptions="/debug:pdbonly">
      <providerOption name="CompilerVersion" value="v3.5"/>
      <providerOption name="WarnAsError" value="false"/>
    </compiler>
    ...
  </compilers>
</system.codedom>
Run Code Online (Sandbox Code Playgroud)