2009-01-20 6 views
4

Lorsque j'ajoute un gestionnaire HTTP:HttpHandler 101 FAIL

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

Avec la classe:

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

} 

Mon application ASP.NET meurt avec l'erreur "Impossible de charger le type 'gestionnaire'." quand j'essaie d'accéder à http://localhost:port/mysite/this-is-a-test.aspx. Je pensais que c'était peut-être un problème d'espace de noms, alors j'ai essayé ce qui suit, mais j'ai eu la même chose "Impossible de charger le type 'Test.Handler'." Erreur.

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

Avec la classe:

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

    } 

} 

Je savais que je rouiller avec ASP.NET, mais je suis sans la moindre idée sur celui-ci.

Répondre

11

Je suppose que vous utilisez un projet de site Web en contraste de projet d'application Web. Dans ce cas, vous devez placer le code derrière le fichier de votre gestionnaire (Handler.cs) dans le dossier spécial App_Code. Le fichier de balisage (Handler.ashx) peut être à la racine de votre site:

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

Ensuite, vous pouvez déclarer directement votre gestionnaire dans web.config:

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

Lorsque le gestionnaire est une classe mon répertoire App_Code les œuvres suivantes pour moi:

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

(je ne l'ai ajoutée pour les gestionnaires préfixes entiers comme « * .test »).

0

Par défaut, asp.net Pagerhandlerfactory traitera toutes les demandes de ressources .aspx.