如何在调试期间在ASP.NET(C#)中使用Console.WriteLine?

时间:2012-03-08 07:30:07

标签: c# asp.net visual-studio-2010 console

我想在ASP.NET(C#)中向控制台写一些结果。 它适用于Window应用程序,但Web应用程序不起作用。 这是我尝试过的:

protected void btonClick_Click(object sender, EventArgs e)
{
    Console.WriteLine("You click me ...................");
    System.Diagnostics.Debug.WriteLine("You click me ..................");
    System.Diagnostics.Trace.WriteLine("You click me ..................");
}

但是我在“输出”面板中看不到任何内容。我该如何解决这个问题?

7 个答案:

答案 0 :(得分:161)

Console.Write在ASP.NET中不起作用,因为它是使用浏览器调用的。请改用Response.Write。

请参阅Stack Overflow问题 Where does Console.WriteLine go in ASP.NET?

如果要在调试期间向Output窗口写入内容,可以使用

System.Diagnostics.Debug.WriteLine("SomeText");

但这仅在调试期间有效。

请参阅Stack Overflow问题 Debug.WriteLine not working

答案 1 :(得分:24)

using System.Diagnostics;

只要下拉列表设置为“Debug”,以下内容就会打印到您的输出中。如下所示。

Debug.WriteLine("Hello, world!");


enter image description here

答案 2 :(得分:7)

如果出于某种原因你想要抓住Console.WriteLine的输出,你可以这样做:

protected void Application_Start(object sender, EventArgs e)
{
    var writer = new LogWriter();
    Console.SetOut(writer);
}

public class LogWriter : TextWriter
{
    public override void WriteLine(string value)
    {
        //do whatever with value
    }

    public override Encoding Encoding
    {
        get { return Encoding.Default; }
    }
}

答案 3 :(得分:2)

Trace.Write(“错误消息”)和Trace.Warn(“错误消息”)是在web中使用的方法,需要修饰页眉trace = true并在配置文件中隐藏错误消息文本到转到最终用户,以便留在iis本身进行程序员调试。

答案 4 :(得分:1)

code-behind中使用response.write方法。

答案 5 :(得分:0)

确保以调试模式( F5 )启动应用程序,而不是没有调试( Ctrl + F5 ),然后选择&# 34;显示输出:Debug"在Visual Studio的“输出”面板中。

答案 6 :(得分:0)

您不应该作为IIS服务器启动。检查您的启动设置,确保已切换到您的项目名称(在launchSettings.json文件中更改此名称),而不是IIS。

enter image description here