我有一些来自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
值?
非常感谢!
答案 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
常量(参见图片)