2009-11-12 13 views
5

En un sitio web ASP.NET 2.0, registro detalles de excepciones no controladas. Me gustaría registrar el nombre de archivo fuente y el número de línea, pero no obtengo esto en el seguimiento de la pila cuando ocurre una excepción. La razón para esto es que tengo debug = "false" en la configuración de compilación de web.config (es un sitio de producción), por lo tanto, no se están generando archivos PDB en el servidor. ¿Hay alguna manera de hacer que ASP.NET genere los archivos de símbolos de depuración en el modo de lanzamiento? No quiero precompilar el sitio.Símbolos de depuración en modo de lanzamiento

+0

No estoy 100% seguro, pero dudo que sea posible. –

Respuesta

5

OK, encontré una respuesta. Puede establecer debug = "false" para obtener optimizaciones y luego establecer compilerOptions = "/ debug: pdbonly" en la configuración del compilador system.codedom para obtener símbolos. Aquí están los extractos relevantes de 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> 
+0

Solo para su información personal, para mi proyecto de sitio web ASP.NET 4.0, después de hurgar en la matriz CompilerInfo (use CompilerInfo [] allCompilerInfo = CodeDomProvider.GetAllCompilerInfo(); para obtenerlo), la configuración de Versión es "Versión = 4.0.0.0" y < providerOption name = "CompilerVersion" value = "v4.0" />. Todo lo demás es lo mismo. Moraleja de la historia es que su kilometraje puede variar, verifique su configuración real para su proyecto. –

1

A menos que me falta algo, la diferencia entre las versiones de depuración & está en las optimizaciones. Debería poder crear un binario de depuración normal con pdb y asegurarse de habilitar todas las configuraciones de optimización en la configuración del proyecto. Afaik, a menos que haya una excepción, se cargue el archivo pdb, etc ...

+0

Es un sitio web ASP.NET 2.0 - No estoy construyendo un binario. Toda la compilación se realiza sobre la marcha por ASP.NET y controlada por la configuración web.config. Parece que puedo tener debug = "false" (optimizaciones pero no símbolos) o debug = "true" (símbolos pero no optimizaciones). – noj

Cuestiones relacionadas