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

时间:2009-02-12 19:31:01

标签: c# asp.net debugging

我有一些来自VB.NET 1.1天的代码,它允许我动态检查是否在web.config中启用了Debug。我想为什么如果我可以让网络管理员启用调试,重新发明打开/关闭日志记录的轮子。这是我在VB.NET中使用的代码,它运行得很好:

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

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

非常感谢!

3 个答案:

答案 0 :(得分:108)

使用:

HttpContext.Current.IsDebuggingEnabled

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

答案 1 :(得分:10)

以下内容应该有效

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

答案 2 :(得分:5)

CNC中 我知道这并没有具体回答这个问题,因为你要求Web.Config - 它立即建议一个web.app,而不是在“运行时”决定,但它确实有一个很好的方法来检查是否这是调试模式。

另外请注意,在同一个应用程序中,您无法在调试和发布模式之间进行理想的互换。 - 编辑 -

如何使用条件编译?

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

bool isDebuggingEnabled = false

#if debug
   isDebuggingEnabled = true;
#endif

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

确保项目中已启用DEBUG常量(参见图片)

enter image description here