我正在使用asp.net mvc输出缓存并遇到了一个问题。
我正在覆盖全局asax中的GetVaryByCustomString方法,其客户实现是构建自定义字符串。在此字符串上构建基于插入另一个httpmodule中的httpcontext的数据。
我遇到的问题是在将值放入httpcontext之前会触发OutputCacheModule - 这是在另一个httpmodule中完成的。
在outputcache模块执行之前,有没有办法可以触发不同的httpmodule?
或者还有另一种解决方案。
答案 0 :(得分:1)
尝试按.net管道(http://msdn.microsoft.com/en-us/library/ff649096.aspx)执行的顺序对事件进行排序。
例如,您可以使用BeginRequest事件,即第一个要引发的事件:
public class MyModule : IHttpModule
{
public void Init(HttpApplication context)
{
context.BeginRequest += context_BeginRequest;
}
void context_BeginRequest(object sender, EventArgs e)
{
var application = (HttpApplication)sender;
var context = application.Context;
// do something
}
public void Dispose()
{
}
}