Как использовать Console.WriteLine в ASP.NET (C #) во время отладки?


88

Я хочу записать какой-то результат в консоль в ASP.NET (C #). Он работает в приложении Windows, но веб-приложение не работает. Вот что я пробовал:

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

Но я ничего не вижу на панели вывода. Как мне решить эту проблему?


посмотрите здесь, stackoverflow.com/questions/2522099/…
labroo 08

Ответы:


184

Console.Write не будет работать в ASP.NET, поскольку он вызывается с помощью браузера. Вместо этого используйте Response.Write.

См. Вопрос о переполнении стека. Где Console.WriteLine находится в ASP.NET? .

Если вы хотите что-то записать в окно вывода во время отладки, вы можете использовать

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

но это будет работать только во время отладки.

См. Вопрос о переполнении стека. Debug.WriteLine не работает .


6
Response.Write будет писать в поток ответов http, я не думаю, что @Leap Bun этого хочет
labroo 08

@labroo Конечно. Respone.Write отобразит текст в браузере. Я не могу это использовать.
Leap Bun

1
@PraveenVenu Я уже пробовал System.Diagnostics.Debug.WriteLine ("SomeText"); в вопросе!
Leap Bun

2
Обратите внимание, что вы можете изменить вывод System.Diagnostics.Debug, манипулируя коллекцией Listeners. См. MSDN для получения дополнительной информации
Т. Фабр

Комментарий, который я добавил к вашему вопросу, не помогает?
labroo 08

27

using System.Diagnostics;

Следующее будет напечатано на вашем выходе, если в раскрывающемся списке установлено значение «Отладка», как показано ниже.

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


введите описание изображения здесь


9

Если по какой-либо причине вы хотите отследить вывод 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; }
    }
}

2

Trace.Write («Сообщение об ошибке») и Trace.Warn («Сообщение об ошибке») - это методы, которые можно использовать в Интернете, необходимо украсить заголовок страницы trace = true и в файле конфигурации, чтобы скрыть текст сообщения об ошибке, чтобы перейти к концу -user и чтобы оставаться в iis для отладки программиста.



0

Вы не должны запускаться как сервер IIS. проверьте настройки запуска, убедитесь, что оно переключено на имя вашего проекта (измените это имя в launchSettings.jsonфайле), а не на IIS.

введите описание изображения здесь


-1

Убедитесь, что вы запускаете приложение в режиме отладки ( F5), а не без отладки ( Ctrl+ F5), а затем выберите «Показать вывод из: Отладка» на панели «Вывод» в Visual Studio.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.