Подтвердить что ты не робот

Как проверить, включен ли отладчик в web.config

У меня есть код из моего VB.NET 1.1 дня, который позволил мне динамически проверить, включен ли Debug в web.config. Я подумал, зачем заново изобретать колесо при включении/выключении регистрации, если бы я мог просто включить веб-администратора для отладки. Вот код, который я использовал в VB.NET, который работал отлично:

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

Когда я захотел преобразовать это в С# и использовать его в .NET 3.5, я столкнулся с некоторыми проблемами, и это не сработало. Кроме того, я хотел бы использовать новую конструкцию ConfigurationManager.GetSection. Может ли кто-нибудь предложить, как лучше всего читать значение system.web/compilation/debug=true|false?

Очень ценно!

4b9b3361

Ответ 1

Использование:

HttpContext.Current.IsDebuggingEnabled

Это свойство действительно рассматривает настройку конфигурации web.config. Если вы посмотрите на него с помощью Reflector, вы обнаружите, что он получает фактический объект ConfigurationSection, используя некоторые внутренние классы.

Ответ 2

следующее должно работать

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

Ответ 3

-Edit- Я знаю, что это не отвечает конкретно на вопрос, так как вы просили Web.Config, который сразу же предлагает web.app и не решен в "run-time", но он действительно позволяет проверить, действительно ли это режим отладки.

В другой заметке вы не идеально поменяли бы режим отладки и выпуска в одном приложении. -Изменение -

Как насчет использования условной компиляции

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