11

ASP.NET MVC 2 Preview 1アプリケーションで要求ごとのセッションパターンを実装しようとしていますが、これを行うのに役立つIHttpModuleを実装しました。

public class SessionModule : IHttpModule
{
    public void Init(HttpApplication context)
    {
        context.Response.Write("Init!");
        context.EndRequest += context_EndRequest;
    }
    // ... etc...
}

そして、私はこれをweb.configに入れました:

  <system.web>
    <httpModules>
      <add name="SessionModule" type="MyNamespace.SessionModule" />
    </httpModules>

  <system.webServer>
    <modules runAllManagedModulesForAllRequests="true">
      <remove name="SessionModule" />
      <add name="SessionModule" type="MyNamespace.SessionModule" />
    </modules>

ただし、「Init!」ページに書き込まれることはありません(組み込みのVS WebサーバーであるCassiniを使用しています)。さらに、SessionModuleにブレークポイントを設定しようとしましたが、ブレークすることはありません。私は何が欠けていますか?

4

3 に答える 3

14

ビューフォルダにWeb.configファイルがあり、ルートに1つあることがわかります。httpModulesを登録したのはどれだと思いますか?はい、Viewsフォルダの1つです。ルートWeb.configに移動したところ、チャームのように機能するようになりました。

于 2009-09-09T02:04:47.727 に答える
1

EndRequest(またはBeginRequest)イベントをサブスクライブするメソッドにResponse.Writeを配置する必要がある場合があります。Initの段階でResponseオブジェクトが完全に初期化されていないと思います。

于 2009-09-07T22:21:22.810 に答える
1

私の問題は、コントローラーメソッドに[HandleError]があり、カスタムエラーハンドラーがエラーをキャッチする前にエラーをキャッチしていたことでした。

于 2010-04-29T16:06:20.557 に答える