1

我有一个 MVC 3 应用程序,它有 JSON POST'ed 到一个动作。一切正常,但我需要开始记录原始入站 JSON blob(或正在发送的任何其他内容)。具体来说,我想捕获在命中目标操作之前失败的请求,以便我可以分析正在发布的数据的结构和/或内容问题。

在 MVC 3 中这样的事情可能吗?

4

2 回答 2

1

如果您想分析服务器的所有内容,请考虑使用 HTTP 模块:http: //msdn.microsoft.com/en-us/library/ms227673.aspx

HTTP Module 是一个类,它允许您将其他操作附加到现有的请求流。您可以将代码附加到 BeginRequest 事件以记录请求详细信息,即使它不会到达控制器。

public class HelloWorldModule : IHttpModule {
    // In the Init function, register for HttpApplication 
    // events by adding your handlers.
    public void Init(HttpApplication application)
    {
        application.BeginRequest += 
            (new EventHandler(this.Application_BeginRequest));
    }

    private void Application_BeginRequest(Object source, 
         EventArgs e)
    {
        //Do something with HttpContext.Current.Request here
    } 
}
于 2012-05-28T09:36:03.860 回答
0

为什么要自己做。有一些开源解决方案可以很好地完成这项工作。最著名的可能是log4net,其次是elmah,它基本上是一个 HTTP 模块

于 2012-05-28T09:46:18.733 回答