HttpHandler 101 FAIL
Wenn ich ein HTTP-handler:
<add verb="*" path="*test.aspx" type="Handler"/>
Mit der Klasse:
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; }
}
}
Meine ASP.NET Anwendung stirbt mit der Fehlermeldung "Konnte nicht geladen werden Typ 'Handler'." wenn ich versuche, auf http://localhost:port/mysite/this-is-a-test.aspx.
Ich dachte, vielleicht war es ein namespace Problem, also versuchte ich das, was folgt, aber habe das gleiche "Konnte nicht geladen werden Typ 'Test.Handler'." - Fehler.
<add verb="*" path="*test.aspx" type="Test.Handler, Test"/>
Mit der Klasse:
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; }
}
}
}
Ich wusste, ich war immer rostig mit ASP.NET aber ich bin ohne Ahnung auf diese.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich denke, Sie sind über eine web-site-Projekt im Gegensatz zu web-Anwendung-Projekt. In diesem Fall müssen Sie das code-behind-Datei von Ihrem handler (Handler.cs) in den speziellen Ordner App_Code. Die markup-Datei (Handler.ashx) kann an der Wurzel Ihrer Website:
Dann können Sie sich direkt erklären, den handler in der web.config:
Wenn der Handler ist eine Klasse, die in meinem Verzeichnis App_Code die folgenden arbeiten für mich:
(Ich habe nur-Handler für die ganzen Präfixe wie "*.test").
Standardmäßig asp.net Pagerhandlerfactory-Objekt kümmert sich um alle .aspx-Ressource anfordern.