2009-11-12 5 views
5

Sur un site Web ASP.NET 2.0, consignez les détails des exceptions non gérées. Je voudrais enregistrer le nom de fichier source et le numéro de ligne, mais je ne comprends pas cela dans la trace de la pile lorsqu'une exception se produit. La raison en est que j'ai debug = "false" dans les paramètres de compilation web.config (c'est un site de production), donc aucun fichier PDB n'est généré sur le serveur. Existe-t-il un moyen d'obtenir ASP.NET pour générer les fichiers de symboles de débogage en mode de publication? Je ne veux pas précompiler le site.Symboles de débogage en mode édition

+0

Je ne suis pas sûr à 100%, mais je doute que ce soit possible. –

Répondre

5

OK, j'ai trouvé une réponse. Vous pouvez définir debug = "false" pour obtenir des optimisations, puis définir compilerOptions = "/ debug: pdbonly" dans les paramètres du compilateur system.codedom pour obtenir des symboles. Voici les extraits web.config pertinents:

<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

Juste pour info, pour mon projet de site Web ASP.NET 4.0, après avoir parcouru le tableau CompilerInfo (utilisez CompilerInfo [] allCompilerInfo = CodeDomProvider.GetAllCompilerInfo(), le paramètre Version est "Version = 4.0.0.0" et < providerOption name = "CompilerVersion" value = "v4.0" />. Tout le reste est identique. Morale de l'histoire est votre kilométrage peut varier, vérifiez vos paramètres réels pour votre projet. –

1

À moins que je ne manque quelque chose, la différence entre la version de débogage & est dans les optimisations. Vous devriez être capable de créer un binaire de débogage normal avec pdb et assurez-vous d'activer tous les paramètres d'optimisation dans les paramètres du projet. Afaik sauf theres une exception le fichier pdb wount être chargé, etc ...

+0

C'est un site Web ASP.NET 2.0 - je ne construis pas un binaire. Toute la compilation est effectuée à la volée par ASP.NET et contrôlée par les paramètres web.config. Il semble que je puisse avoir debug = "false" (optimisations mais pas de symboles) ou debug = "true" (symboles mais pas d'optimisations). – noj

Questions connexes