c# - studio - ¿Cómo verifico si la depuración está habilitada en web.config?
iis debug visual studio (3)
Tengo un código de mi VB.NET 1.1 días que me permitió verificar dinámicamente si Debug estaba habilitado en web.config. Pensé por qué reinventar la rueda para activar / desactivar el registro si simplemente podía hacer que el administrador web habilitara la depuración. Aquí está el código que utilicé en VB.NET que funcionó bien:
ConfigurationSettings.GetConfig("system.web/compilation").Debug.ToString()
Cuando quise convertir esto a C # y usarlo en .NET 3.5 me encontré con algunos problemas y no funcionó. Además, me gustaría utilizar la construcción más nueva de ConfigurationManager.GetSection. ¿Alguien puede sugerir la mejor manera de leer el system.web/compilation/debug=true|false
value?
¡Muy apreciado!
-Editar- Soy consciente de que esto no responde específicamente a la pregunta, ya que solicitó Web.Config, que sugiere inmediatamente un web.app, y no se decide en "tiempo de ejecución", pero permite una buena manera para comprobar si es el modo de depuración.
En otra nota, idealmente no se intercambiaría entre el modo de depuración y el de liberación en la misma aplicación. -End edit-
¿Qué hay de usar la compilación condicional?
http://msdn.microsoft.com/en-us/library/aa691099(v=vs.71).aspx
bool isDebuggingEnabled = false
#if debug
isDebuggingEnabled = true;
#endif
Eso seguramente tendría más sentido, y no requiere ninguna referencia específica?
Solo asegúrate de que la Constancia de DEBUG
esté activada en tu proyecto (Ver imagen)
Utilizar:
HttpContext.Current.IsDebuggingEnabled
Esta propiedad realmente mira la configuración de configuración web.config. Si lo mira con Reflector, encontrará que obtiene el objeto ConfigurationSection real utilizando algunas clases internas.
lo siguiente debería funcionar
var cfg=(System.Web.Configuration.CompilationSection) ConfigurationManager.GetSection("system.web/compilation");
if (cfg.Debug)
{
...
}