2009-01-20 50 views
4

当我添加一个HTTP处理程序:的HttpHandler 101 FAIL

<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,但我没有在这一个线索。

回答

11

我想你正在使用一个网站项目对比web应用程序项目。在这种情况下,您需要将代码隐藏在您的处理程序文件(Handler.cs)中的特殊App_Code文件夹中。标记文件(Handler.ashx)可能是在您的网站的根目录:

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

然后你就可以直接申报您的处理程序在web.config中:

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

当处理器处于一个类我App_Code目录对我下面的作品:

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

(对于整个前缀,如“*。测试”我只添加处理程序)。

0

默认情况下,asp.net Pagerhandlerfactory对象将处理所有的.aspx资源请求。