HttpHandler 101 FAIL - PullRequest
       15

HttpHandler 101 FAIL

4 голосов
/ 20 января 2009

Когда я добавляю обработчик 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, но я понятия не имею об этом.

Ответы [ 3 ]

12 голосов
/ 20 января 2009

Я полагаю, вы используете проект веб-сайта в отличие от проекта веб-приложения. В этом случае вам нужно поместить код за файлом вашего обработчика (Handler.cs) в специальную папку App_Code. Файл разметки (Handler.ashx) может находиться в корне вашего сайта:

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

Затем вы можете напрямую объявить свой обработчик в web.config:

<add verb="*" path="*test.aspx" type="Handler"/>
0 голосов
/ 20 января 2009

По умолчанию объект asp.net Pagerhandlerfactory будет обрабатывать все запросы ресурсов .aspx.

0 голосов
/ 20 января 2009

Когда обработчик является классом в моем каталоге App_Code, у меня работает следующее:

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

(я добавил обработчики только для целых префиксов, таких как "* .test").

...