Pendant la compilation, je peux faire une vérification comme
#if DEBUG
Log("something");
#endif
Mais quelle serait la préférence pour vérifier si debug="false"
est défini dans Web.config pendant l'exécution?
HttpContext.IsDebuggingEnabled
http://msdn.Microsoft.com/en-us/library/system.web.httpcontext.isdebuggingenabled.aspx
Dans certains cas, vous aurez peut-être besoin de HttpContext.Current.IsDebuggingEnabled
(un peu évident, mais néanmoins)
Il existe une autre méthode externe et empirique non programmatique pour vérifier si vous avez accidentellement laissé l'attribut debug=true
Sur system.web/compilation
Sur un site Web Asp.Net, c'est-à-dire pour détecter si vous avez quitté cette configuration dans web.config:
<system.web>
<compilation debug="true" targetFramework="xxx"/>
En utilisant un outil tel que Fiddler , vous pouvez intercepter une demande GET sur votre site Web, puis la modifier pour émettre un DEBUG
non standard) = = Verbe HTTP vers le site, avec un en-tête Command: stop-debug
Supplémentaire.
Raw
(puisque DEBUG n'est pas une option de verbe HTTP standard)GET
à DEBUG
Command: stop-debug
Supplémentaire (au-dessus des cookies), mais laissez le reste des en-têtes et des cookies en placeDEBUG
Si le site Web renvoie 200 et le contenu OK
, vous savez que vous avez laissé le débogage activé. Le site Web renverra 403 - Forbidden
Si debug
est désactivé.
Si vous avez construit votre site Web sur un pipeline de construction CI/CD, la meilleure façon de désactiver le débogage est d'ajouter ce qui suit XDT dans votre Web.Release.config
<system.web>
<compilation xdt:Transform="RemoveAttributes(debug)" />
</system.web>
(Désactiver le débogage dans Production est une exigence courante d'audit de sécurité)