在ASP.NET应用程序中使用System.Diagnostics.Debug

时间:2011-06-13 19:10:41

标签: c# asp.net visual-studio debugging

我正在尝试在ASP.NET Web应用程序的输出窗口中看到我的代码中的foreach循环的输出,但即使有有效数据,我也没有得到任何结果。我在这个问题上使用谷歌进行了相当多的搜索,但我没有做过任何工作。这是我的ASPX页面中的代码:

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

代码非常简单。当我调试这个页面时,myClass.SomeProperty具有我想要的值,但没有任何东西被打印到输出窗口。我能错过什么?我无法使用Response.Write,因为我的Response流用于创建Excel文件。我也不想使用跟踪。

更新

我在我的web.config文件中有这个:

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

4 个答案:

答案 0 :(得分:1)

(抱歉没有完整答案,但评论有点长)

有调试相关功能。 (相关What does the optimize switch do

  • 生成调试符号
  • C#IL优化
  • 抖动优化
  • DEBUG条件定义。

您的问题需要DEBUG条件。我想debug="true"开关只影响调试符号,但不影响条件。


编辑: 嗯奇怪。 scottgu在http://weblogs.asp.net/scottgu/archive/2005/11/06/429723.aspx指出debug="true"应该影响该条件。

  

请注意,Web应用程序中的debug值由web.config文件中的值值驱动。

答案 1 :(得分:1)

您正在使用System.Diagnostics.Trace,而不是ASP.NET跟踪。要使System.Diagnostics.Trace在ASP.NET中工作,请参阅http://msdn.microsoft.com/en-us/library/b0ectfxd(v=vs.85).aspx

答案 2 :(得分:0)

我也有同样的问题,但后来发现Debug.Writeline()不适用于我的单元测试。

答案 3 :(得分:0)

你有没有设置

<system.web> <compilation debug="true" defaultLanguage="c#" />  </system.web>
你的web.config中的