当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《如何检查web.config中是否启用了Debug》经验,为你挑选了3个好方法。

我有一些来自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价值?

非常感激!



1> driis..:

使用:

HttpContext.Current.IsDebuggingEnabled

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


大!这是检查调试比直接读取web.config更好的方法...值得一提的是,我发现一篇文章表明如果在页面级别设置调试,此方法将不会考虑.http://petesbloggerama.blogspot.com/2007/01/is-debug-mode-evil.html

2> JoshBerke..:

以下应该有效

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


但是如果你在类库级别,你没有(或不应该)访问HTTP上下文呢?
@Stuart.Sklinar我是aggree,但是再次,如果你在类库级别,你也不应该引用`System.Web`dll.有关如何在不添加额外库引用的情况下获得此建议的任何建议?

3> Stuart.Sklin..:

-Edit-我知道这并没有具体回答这个问题,因为你要求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常量已打开(参见图片)

在此输入图像描述

推荐阅读
wangtao
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有