Pregunta

Cuando agrego un controlador HTTP:

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

Con la clase:

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; }
    }

}

Mi aplicación ASP.NET muere con el error " No se pudo cargar el tipo 'Handler'. " cuando intento acceder a http: // localhost: port / mysite / this-is -a-test.aspx .

Pensé que tal vez era un problema de espacio de nombres, así que intenté lo siguiente, pero obtuve el mismo " No se pudo cargar el tipo 'Test.Handler'. " error.

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

Con la clase:

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; }
        }

    }

}

Sabía que me estaba oxidando con ASP.NET, pero no tengo ni idea de esto.

¿Fue útil?

Solución

Supongo que está utilizando un proyecto de sitio web en contraste con el proyecto de aplicación web. En este caso, debe colocar el código detrás del archivo de su controlador (Handler.cs) en la carpeta especial App_Code. El archivo de marcado (Handler.ashx) puede estar en la raíz de su sitio:

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

Entonces puede declarar directamente su controlador en web.config:

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

Otros consejos

Cuando el controlador es una clase en mi directorio App_Code, lo siguiente funciona para mí:

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

(Solo he agregado controladores para prefijos completos como " *. test ").

De forma predeterminada, el objeto asp.net Pagerhandlerfactory manejará todas las solicitudes de recursos .aspx.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top