C# Console.WriteLine在ASP.net生产环境中的位置?
在IIS中部署asp.net web应用程序后,是否有可能看到Console.WriteLine命令的输出?(不再使用Visual Studio) 我检查了这个问题: 但问题是,他们都在谈论调试/开发环境,VisualStudio的哪个输出窗口可以用来检查这些行的输出C# Console.WriteLine在ASP.net生产环境中的位置?,c#,asp.net,console,trace,console.writeline,C#,Asp.net,Console,Trace,Console.writeline,在IIS中部署asp.net web应用程序后,是否有可能看到Console.WriteLine命令的输出?(不再使用Visual Studio) 我检查了这个问题: 但问题是,他们都在谈论调试/开发环境,VisualStudio的哪个输出窗口可以用来检查这些行的输出 是否真的有办法在不安装额外日志记录工具(如log4net)的情况下查看这些行的输出 我认为你做不到。一个负责任的开发人员可以从他的代码中写入信息来帮助调试,但总是跟踪.write或调试.write,永远不要控制台。write使用
是否真的有办法在不安装额外日志记录工具(如log4net)的情况下查看这些行的输出 我认为你做不到。一个负责任的开发人员可以从他的代码中写入信息来帮助调试,但总是
跟踪.write
或调试.write
,永远不要控制台。write
使用MessageBox,它会帮助很多。您想要观察的任何内容都会写入到put-in-messageboxConsole.WriteLine(默认情况下重定向到Console.Out.WrlteLine),这意味着写入它们的内容会丢失,正如您提到的 要重定向到另一个流,如文件,请使用,如global.asax文件中的。这将把任何Console.WriteLine调用重定向到输出文件。记住关闭EndRequest处理程序或类似位置中的流
正如其他人在这里所说的,出于这个原因,在web应用程序或通用库中通常应该避免使用Console.WriteLine。考虑使用日志库,如.
<代码>控制台。默认情况下,out < /COD>对应于主机进程的代码> Stdout 流。在Windows上,只有标记为控制台类型的可执行文件才将其标准输出流定向到控制台窗口-对于所有其他可执行文件类型(GUI和服务进程),标准输出将不起作用
ASP.NET在w3wp.exe
中运行,这是一个没有GUI的服务进程。正如@akton指出的,它将进入一个空流,因此任何写入的内容都将丢失
如果要跟踪调试操作(或者更确切地说,事后调试),请使用
Debug.WriteLine
或使用日志库,如log4net
,接受的答案是正确的。但是,如果您想用鞋子将钉子钉到咖啡桌上(错误的目标和错误的工具),那么您需要停止iis,并通过远程桌面登录服务器并从cmd.exe提示符启动inetinfo.exe(带有合适的开关)从控制台以交互方式运行它。下面是一个MSDN页面,演示了旧版本IIS的技术:我认为它在原则上仍然适用于新版本的IIS
如果不想使用库,可以始终使用System.Diagnostics TraceSource,然后将跟踪重定向到开发()中的ConsoleTraceListeners,然后重定向到服务器环境中的文件或数据库侦听器 您可以使用DebugView获取IIS上运行的C#/.Net编译应用程序的
Console.WriteLine()的输出:非常类似于我对该问题的回答。亲爱的Ravindra。它实际上是部署在IIS中的SOAP web服务,而不是winform应用程序。亲爱的Danny,在IIS中部署web应用程序后(例如,在系统定义的日志文件或windows事件查看器中,或在普遍可访问的地方),是否有机会捕获Trace.Write和Debug.Write的输出+1Trace.Write
或Debug.Write
是应该的方式(不使用记录器时)。谢谢Matthew。您的解决方案也是相当不错的。请调用Debug.WriteLine。我只是想在我的IIS应用程序上快速计时。