如何检查是否在web.config中启用了debugging

我有我的VB.NET 1.1天的一些代码,允许我dynamic检查是否在web.config中启用了debugging。 我想,为什么重新发明轮打开/closures日志logging,如果我可以简单地让Webpipe理员启用debugging。 这里是我在VB.NET中使用的代码,工作得很好:

ConfigurationSettings.GetConfig("system.web/compilation").Debug.ToString() 

当我想将其转换为C#并在.NET 3.5中使用它时,我遇到了一些麻烦,它不起作用。 此外,我想使用ConfigurationManager.GetSection的新构造。 任何人都可以build议如何最好的阅读system.web/compilation/debug=true|false值?

非常感激!

使用:

 HttpContext.Current.IsDebuggingEnabled 

该属性实际上查看web.configconfiguration设置。 如果您使用Reflector查看它,您会发现它使用一些内部类获取实际的ConfigurationSection对象。

以下应该工作

 var cfg=(System.Web.Configuration.CompilationSection) ConfigurationManager.GetSection("system.web/compilation"); if (cfg.Debug) { ... } 

– 编辑 – 我知道这并没有具体回答这个问题,因为你问了Web.Config – 它立即build议一个web.app,并没有在“运行时”决定,但它确实允许一个好方法检查它是否是debugging模式。

在另一个说明中,你不会在同一个应用程序的debug和release模式之间进行理想的交换。-End edit-

如何使用条件编译?

http://msdn.microsoft.com/en-us/library/aa691099(v=vs.71).aspx

 bool isDebuggingEnabled = false #if debug isDebuggingEnabled = true; #endif 

这肯定会最有意义,并不需要任何具体的参考?

只要确保在你的项目中打开了DEBUG常量(见图)

在这里输入图像说明