好的,所以我在这里有很多任务:
这个项目的背景非常复杂,并且完全由NDA覆盖,所以我只是陈述我在没有背景的情况下要做的事情。
所以我需要的是一种记录对MVC应用程序发出的每个请求以及来自它的每个响应的方法。
此外,我还需要一种回复"的方法。请求与发送时完全相同。
我希望我可以创建一些解决方案来加载" MVC应用程序,Self托管或在IIS中运行,获取请求,记录它们并将它们逐字传递给MVC应用程序,然后MVC应用程序就像任何其他MVC应用程序一样。
然后我可以创建第二个解决方案,即#34;加载" MVC应用程序,但不是打开它来请求它将从事件存储读取事件和"重播"他们在MVC应用程序中。
现在我不知道哪里可以开始。这种事情是方式在我的舒适区之外。
如果我有另外的解决方案可以记录和重播请求(和回复),请告诉我。
即使在开始执行所有身份验证和路由malarkey之前有一种方法可以拦截MVC中的请求,那么这将是一个很好的起点。我还需要知道在发送响应之前的最后一秒我可以捕获响应。
非常感谢你的时间 安迪
答案 0 :(得分:0)
HttpModule
适用于您的方案:
using System;
using System.Web;
public class HelloWorldModule : IHttpModule
{
public HelloWorldModule()
{
}
public String ModuleName
{
get { return "HelloWorldModule"; }
}
// In the Init function, register for HttpApplication
// events by adding your handlers.
public void Init(HttpApplication application)
{
application.BeginRequest +=
(new EventHandler(this.Application_BeginRequest));
application.EndRequest +=
(new EventHandler(this.Application_EndRequest));
}
private void Application_BeginRequest(Object source,
EventArgs e)
{
// Create HttpApplication and HttpContext objects to access
// request and response properties.
HttpApplication application = (HttpApplication)source;
HttpContext context = application.Context;
/*...*/
}
private void Application_EndRequest(Object source, EventArgs e)
{
HttpApplication application = (HttpApplication)source;
HttpContext context = application.Context;
/*...*/
}
public void Dispose() { }
}
代码和更多可用信息here。