Как проверить, включена ли отладка в web.config - PullRequest
45 голосов
/ 12 февраля 2009

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

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

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

Очень ценится!

Ответы [ 3 ]

108 голосов
/ 12 февраля 2009

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

HttpContext.Current.IsDebuggingEnabled

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

10 голосов
/ 12 февраля 2009

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

var cfg=(System.Web.Configuration.CompilationSection) ConfigurationManager.GetSection("system.web/compilation");
if (cfg.Debug)
{
...
}
5 голосов
/ 09 декабря 2013

-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 Константа (см. Рисунок)

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...