0

いくつかのことをチェックする単純な HttpHandler を実行しようとしていますが (セキュリティ - これは重要ではありません)、ページに進みます。それは単純なはずですが、GetCompiledPageInstance の 1 つまたは両方のパラメーターが間違っていることは明らかです。

public void ProcessRequest(HttpContext context)
{
    if (CheckAccess(context))
        PageParser.GetCompiledPageInstance(context.Request.Path, context.Request.PhysicalPath, context);
}

public bool IsReusable { get { return false; } }

private bool CheckAccess(HttpContext context)
{
    return true;
}

これはアプリケーションではなくウェブサイトですが、違いはないと思います。

ハンドラー コードを Web 構成に追加すると、

<add name="SecurityHandler" verb="*" path="*.aspx" type="SecurityHandler" />

追加する前に取得できなかったエラーが表示されるようになりました (他の変更はありません)。

セッション状態は、構成ファイルまたは Page ディレクティブで enableSessionState が true に設定されている場合にのみ使用できます。System.Web.SessionStateModule またはカスタム セッション状態モジュールがアプリケーション構成の \\ セクションに含まれていることも確認してください。

どうでも。この 2 番目の部分に対する答えが見つかりました: HttpHandler とセッション状態の問題

ハンドラーに IRequiresSessionState を実装する

4

1 に答える 1

1

試す:

    PageParser.GetCompiledPageInstance(context.Request.Path, context.Request.PhysicalPath, context )
         .ProcessRequest( context );
于 2013-03-17T23:21:45.327 に答える