How do I check if Debug is enabled in web.config

2020-02-18 01:57发布

I have some code from my VB.NET 1.1 days that allowed me to dynamically check if Debug was enabled in web.config. I figured why re-invent the wheel in turning on/off logging if I could simply have the web administrator enable debug. Here is the code I used in VB.NET that worked just fine:

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

When I wanted to convert this to C# and use it in .NET 3.5 I ran into some trouble and it wouldn't work. Additionally, I would like to use the newer construct of ConfigurationManager.GetSection. Can anyone suggest how best to read the system.web/compilation/debug=true|false value?

Much appreciated!

3条回答
姐就是有狂的资本
2楼-- · 2020-02-18 02:37

Use:

HttpContext.Current.IsDebuggingEnabled

This property actually looks at the web.config configuration setting. If you look at it using Reflector you will find that it gets the actual ConfigurationSection object using some internal classes.

查看更多
乱世女痞
3楼-- · 2020-02-18 02:39

-Edit- I'm aware this doesn't specifically answer the question, as you asked for Web.Config - which immediately suggests a web.app, and is not decided at "run-time", but it does allow a good way to check if it's debug mode.

On another note, you'd not ideally interchanged between debug and release mode on the same app.. -End edit-

How about using conditional compilation??

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

bool isDebuggingEnabled = false

#if debug
   isDebuggingEnabled = true;
#endif

That surely would make the most sense, and doesn't require any specific references?

Just make sure the DEBUG Constant is turned on in your project (See picture)

enter image description here

查看更多
够拽才男人
4楼-- · 2020-02-18 02:51

the following should work

var cfg=(System.Web.Configuration.CompilationSection) ConfigurationManager.GetSection("system.web/compilation");
if (cfg.Debug)
{
...
}
查看更多
登录 后发表回答