Como usar Console.WriteLine no ASP.NET (C #) durante a depuração?

88

Eu quero escrever algum resultado para o console em ASP.NET (C #). Ele funciona em um aplicativo do Windows, mas um aplicativo da Web não funciona. Aqui está o que tentei:

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

Mas não vejo nada no painel de saída. Como eu resolvo este problema?

Pulo pão
fonte

Respostas:

182

Console.Write não funcionará no ASP.NET, pois é chamado usando o navegador. Em vez disso, use Response.Write.

Consulte a pergunta sobre o Stack Overflow Para onde Console.WriteLine vai no ASP.NET? .

Se você quiser escrever algo na janela de saída durante a depuração, você pode usar

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

mas isso funcionará apenas durante a depuração.

Consulte a questão do Stack Overflow Debug.WriteLine não funciona .

PraveenVenu
fonte
6
Response.Write gravará no fluxo de resposta http, não acho que @Leap Bun queira isso
labroo
@labroo Claro. Respone.Write exibirá o texto no navegador. Eu não posso usar isso.
Leap Bun
1
@PraveenVenu Eu já tentei System.Diagnostics.Debug.WriteLine ("SomeText"); na pergunta!
Leap Bun
2
Observe que você pode alterar a saída de System.Diagnostics.Debug manipulando a coleção Listeners. Veja MSDN para mais informações
T. Fabre,
O comentário que adicionei à sua pergunta não ajuda?
labroo
25

using System.Diagnostics;

O seguinte será impresso na sua saída, desde que o menu suspenso esteja definido como 'Depurar', conforme mostrado abaixo.

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


insira a descrição da imagem aqui

cillierscharl
fonte
9

Se, por algum motivo, você quiser capturar a saída de Console.WriteLine, PODE fazer o seguinte:

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; }
    }
}
David
fonte
2

Trace.Write ("Error Message") e Trace.Warn ("Error Message") são os métodos a serem usados ​​na web, precisam decorar o cabeçalho da página trace = true e no arquivo de configuração para ocultar o texto da mensagem de erro para ir ao fim -user e para permanecer no próprio iis para depuração do programador.

DeepakJoseLopez
fonte
0

Você não deve iniciar como um servidor IIS. verifique a configuração de inicialização, certifique-se de que mudou para o nome do projeto (altere esse nome no launchSettings.jsonarquivo), não o IIS.

insira a descrição da imagem aqui

V.Wu
fonte
-1

Certifique-se de iniciar seu aplicativo no modo de depuração ( F5), não sem depuração ( Ctrl+ F5) e, em seguida, selecione "Mostrar saída de: Depurar" no painel Saída no Visual Studio.

phn
fonte