asp.net - studio - HttpHandler 101 FAIL
httphandler c# (3)
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 ''Controlador''". 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.
Cuando Handler 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 enteros como "* .test").
Por defecto, el objeto asp.net Pagerhandlerfactory manejará toda la solicitud de recursos .aspx.
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"/>