4

HTTPハンドラーを追加すると:

<add verb="*" path="*test.aspx" type="Handler"/>

クラスで:

using System;
using System.Web;

public class Handler : IHttpHandler
{

    public void ProcessRequest(HttpContext context)
    {
        context.Response.ContentType = "text/plain";
        context.Response.Write("Hello World");
    }

    public bool IsReusable
    {
        get { return false; }
    }

}

ASP.NETアプリケーションが「タイプ'ハンドラー'を読み込めませんでした」というエラーで終了します。http:// localhost:port / mysite/this-is-a-test.aspxにアクセスしようとすると。

名前空間の問題かもしれないと思ったので、次のことを試しましたが、同じ「タイプ'Test.Handler'を読み込めませんでした」が表示されました。エラー。

<add verb="*" path="*test.aspx" type="Test.Handler, Test"/>

クラスで:

using System;
using System.Web;

namespace Test
{

    public class Handler : IHttpHandler
    {

        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";
            context.Response.Write("Hello World");
        }

        public bool IsReusable
        {
            get { return false; }
        }

    }

}

ASP.NETで錆びていることはわかっていましたが、これについては何の手がかりもありません。

4

3 に答える 3

12

Web アプリケーション プロジェクトとは対照的に、Web サイト プロジェクトを使用していると思います。この場合、ハンドラーのコード ビハインド ファイル (Handler.cs) を特別な App_Code フォルダーに配置する必要があります。マークアップ ファイル (Handler.ashx) は、サイトのルートにある可能性があります。

<%@ WebHandler Language="C#" Class="Handler" CodeBehind="Handler.cs" %>

次に、web.config でハンドラーを直接宣言できます。

<add verb="*" path="*test.aspx" type="Handler"/>
于 2009-01-20T07:08:57.367 に答える
0

ハンドラーが私のApp_Codeディレクトリのクラスである場合、以下が機能します。

    <add verb="*" path="*test.aspx" type="Test.Handler,__Code"/>

(「*。test」のようなプレフィックス全体のハンドラーのみを追加しました)。

于 2009-01-20T07:20:57.263 に答える
0

デフォルトでは、asp.net Pagerhandlerfactory オブジェクトがすべての .aspx リソース リクエストを処理します。

于 2009-01-20T09:07:58.420 に答える