2

asp.net mvc の出力キャッシュを使用していますが、問題が発生しました。

カスタム文字列を構築する顧客実装を使用して、グローバル asax の GetVaryByCustomString メソッドをオーバーライドしています。この文字列の構築は、別の httpmodule の httpcontext に挿入されたデータに基づいています。

私が抱えている問題は、値が httpcontext に入れられる前に OutputCacheModule が起動されることです - これは別の httpmodule で行われます。

outputcache モジュールが実行される前に、別の httpmodule を起動する方法はありますか?

または、私の状況に別の回避策がありますか。

4

1 に答える 1

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()
    {
    }
}
于 2014-09-23T21:33:46.663 に答える