我有一个实时 Web 应用程序在一个特定场景中失败,并且在本地运行良好。我没有远程调试设置,我想检查代码中一些变量的值。我记录/发送电子邮件/调试代码以查看这些值的最快方法是什么?
为了清楚起见,没有抛出错误/异常。有些东西是不同的,它会导致应用程序给出意想不到的结果。
提前致谢!
我有一个实时 Web 应用程序在一个特定场景中失败,并且在本地运行良好。我没有远程调试设置,我想检查代码中一些变量的值。我记录/发送电子邮件/调试代码以查看这些值的最快方法是什么?
为了清楚起见,没有抛出错误/异常。有些东西是不同的,它会导致应用程序给出意想不到的结果。
提前致谢!
最快的方法是在 Global.asax 文件中的 Application_Error 事件中简单地实现一些日志记录。如果您没有 Global.asax 文件,只需使用 VS New File 向导创建一个,它就会为您处理该事件。
它不会帮助您获取错误范围内的局部变量,但您可以从那里记录全局变量,并至少获得有关错误内容的一些反馈。
编辑:针对您的评论,我建议您将跟踪数据输出到可以分析的文件中。我自己没有尝试过,但我看到了它的推荐。在您的 web.config 中,添加一个名为TraceListener的东西,如下所示:
<system.diagnostics>
<trace autoflush="true">
<listeners>
<add name="TestTracer"
type="System.Diagnostics.TextWriterTraceListener, System,
Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
initializeData="<app root directory>\Asptesttrace.log" />
</listeners>
</trace>
</system.diagnostics>
我敢肯定,您将需要在本地使用它。例如,确保跟踪对客户端不可见(这可能涉及使用 Trace 类打开或关闭跟踪,并更改它写入的流)。
除了 JoshJordan 的评论之外,您可以使用Post Sharp来跟踪何时输入和未退出方法,并查看其中的值...
您始终可以打开仅本地调试,然后远程打开服务器并使用该应用程序。
可能是查看您的问题的最快方法。
我会尝试使用 ASP.NET 跟踪(http://www.4guysfromrolla.com/webtech/081501-1.shtml)进行快速记录。您必须在代码中添加 Trace.Write() 调用,并且您可以在实时页面本身中看到日志(仅通过浏览)。
对于更丰富的日志记录,您可以使用 log4net(只需 google “使用 log4net”,您将获得大量有用的链接),它易于配置并允许您通过电子邮件发送日志(非常方便!)。
希望有帮助。