时间:2010-07-25 09:31:09

标签: asp.net-mvc tracing

5 个答案:

答案 0 :(得分:9)

直接从“MVC 2 in action”一书中引用:

  

在Web中调用Trace.Write()时   表格,你正在与之互动   跟踪 - 上下文类。这存在于   你在ASP.NET MVC中的ViewPage,但是这个   不是你想写的地方   追查陈述。等到你的时候   将接力棒传递到视野,   那里没有你需要的逻辑   追踪。相反,你想跟踪   嵌入你的逻辑   控制器。你可能会尝试利用   你的TraceContext类   控制器,但这些陈述不会   永远地进入清单   跟踪日志中的消息(在您的   页面或Trace.axd)。相反,你   可以使用System.Diagnostics.Trace和   设置自己的TraceListeners   检查你的活动   控制器。或者,你可以   利用更成熟的日志记录   log4net或NLog等框架:

     

您调试ASP.NET MVC应用程序   和任何.NET一样   应用。然而,追踪却没有   为MVC提供尽可能多的东西。相反,你   可以依靠内置   .NET中的TraceListeners,或者使用   这些好的日志库   较早前提过。另一个方面   错误记录是健康监测。

很抱歉没有用我自己的话来回答,但我认为这个解释是现场的:)

答案 1 :(得分:9)

实际上,现在可以做到这一点。使用glimpse,您可以在MVC中返回并使用Trace.Write。

http://getglimpse.com/

仅适用于ASP.NET MVC 3.0及更高版本

答案 2 :(得分:4)

不使用HttpContext.Current.Trace或System.Diagnostics.Trace,而是尝试使用Controller.HttpContext.Trace?

答案 3 :(得分:2)

引用不适用于过滤器和操作中的跟踪。即使这样,它也不适用,因为你可以从OnResultExecuting获得跟踪输出。只有OnResultExecuted才能获得跟踪输出为时已晚。

我只能通过在Cassini中运行我的MVC 3应用程序来集成跟踪输出在IIS 7.5中工作 - 然后集成跟踪开始在IIS 7.5中工作。

我正在调查MVC中的一些痕量异常

答案 4 :(得分:0)

您可以尝试使用Html.Action让控制器为您进行跟踪。 例如,如果需要从默认的“错误”视图中跟踪错误,则可以使用

Html.Action("TraceError", "Error", new { ControllerName = Model.ControllerName, ActionName = Model.ActionName, Exception = Model.Exception })

然后在Error Controller中,实现方法

public ActionResult TraceError(String ControllerName, String ActionName, Exception Exception)
{
    System.Diagnostics.Trace.TraceError("Error Message: {0}", Exception.Message);
    // Other tracing statements
}