【问题标题】:How to use Console.WriteLine in ASP.NET (C#) during debug?调试期间如何在 ASP.NET (C#) 中使用 Console.WriteLine?
【发布时间】:2012-03-08 07:30:06
【问题描述】:

我想在 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 ..................");
}

但我在“输出”面板中什么也看不到。我该如何解决这个问题?

【问题讨论】:

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


【解决方案1】:

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

查看堆栈溢出问题Where does Console.WriteLine go in ASP.NET?

如果你想在调试过程中写一些东西到输出窗口,你可以使用

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

但这仅在调试期间有效。

查看堆栈溢出问题Debug.WriteLine not working

【讨论】:

  • Response.Write 将写入http响应流,我不认为@Leap Bun想要那个
  • @labroo 当然。 Respone.Write 将向浏览器显示文本。我无法使用它。
  • @PraveenVenu 我已经尝试过 System.Diagnostics.Debug.WriteLine("SomeText");在问题中!
  • 请注意,您可以通过操作 Listeners 集合来更改 System.Diagnostics.Debug 的输出。请参阅MSDN 了解更多信息
  • 您的输出窗口是否处于调试模式?和 web.config 中的 ?
【解决方案2】:

using System.Diagnostics;

只要下拉菜单设置为“调试”,如下所示,以下内容就会打印到您的输出中。

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


【讨论】:

    【解决方案3】:

    如果出于某种原因您想获取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; }
        }
    }
    

    【讨论】:

      【解决方案4】:

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

      【讨论】:

        【解决方案5】:

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

        【讨论】:

          【解决方案6】:

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

          【讨论】:

            【解决方案7】:

            确保在调试模式 (F5) 下启动应用程序,而不是在没有调试 (Ctrl+F5) 的情况下启动应用程序,然后选择“显示输出来自:调试”在 Visual Studio 的“输出”面板中。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2012-09-14
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2015-08-22
              • 1970-01-01
              相关资源
              最近更新 更多