Использование System.Диагностика.Отладка в ASP.NET Приложение

#c# #asp.net #visual-studio #debugging

#c# #asp.net #visual-studio #отладка

Вопрос:

Я пытаюсь увидеть результат цикла foreach в моем коде в окне вывода в ASP.NET веб-приложение, но я не получаю никаких результатов, даже несмотря на наличие достоверных данных. Я провел изрядный поиск с помощью Google по этой проблеме, но ничего из того, что я делал, не работает. Вот код на моей странице ASPX:

 List<MyClass> myClasses = GetMyClasses();
foreach (MyClass myClass in myClasses)
{
    Debug.WriteLine(myClass.SomeProperty);
}
  

Код очень простой. Когда я отлаживаю эту страницу, MyClass.SomeProperty имеет значение, которое я хочу, но ничего не выводится в окно вывода. Что я мог упустить? Я не могу использовать ответ.Напишите, потому что мой поток ответов используется для создания файла Excel. Я также не хочу использовать трассировку.

Обновить

У меня есть это в моем файле web.config:

 <system.web>
    ...
    <compilation debug="true" targetFramework="4.0">
    ...
</system.web>
  

Комментарии:

1. Итак, в чем была проблема / как вы ее исправили?

Ответ №1:

(Извините, полного ответа нет, но комментарий немного длинный)

Существуют функции, связанные с отладкой. (Связано с тем, что делает переключатель оптимизации)

  • Генерация символов отладки
  • Оптимизация C # IL
  • Оптимизация дрожания
  • Определение условия ОТЛАДКИ.

Что вам нужно для вашей проблемы, так это DEBUG условие. Я предполагаю, что debug="true" переключатель влияет только на символы отладки, но не на условные.


редактировать: хм, странно. скоттгу заявляет в http://weblogs.asp.net/scottgu/archive/2005/11/06/429723.aspx это debug="true" должно повлиять на это условие.

Обратите внимание, что значение параметра debug в веб-приложении определяется значением значения в вашем файле web.config.

Ответ №2:

Вы используете System.Диагностика.Трассировка, а не ASP.NET Трассировка. Чтобы получить System.Диагностика.Трассировка, работающая внутри ASP.NET смотрите http://msdn.microsoft.com/en-us/library/b0ectfxd (v =против 85).aspx.

Ответ №3:

У меня также была такая же проблема, но позже выяснилось, что Debug.Writeline() не работала с моими модульными тестами.

Комментарии:

1. Это не для модульного теста. Это для ASP.NET страница веб-формы. Я просто пытаюсь сравнить выходные данные для нескольких циклов foreach.

Ответ №4:

Установили ли вы

 <system.web> <compilation debug="true" defaultLanguage="c#" />  </system.web>
  

в вашем web.config?