当我添加HTTP处理程序时:
<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时已经生锈了,但我对这个问题一无所知。
答案 0 :(得分:12)
我猜你正在使用一个与Web应用程序项目形成对比的网站项目。在这种情况下,您需要将处理程序(Handler.cs)的代码置于特殊的App_Code文件夹中。标记文件(Handler.ashx)可能位于您网站的根目录:
<%@ WebHandler Language="C#" Class="Handler" CodeBehind="Handler.cs" %>
然后你可以直接在web.config中声明你的处理程序:
<add verb="*" path="*test.aspx" type="Handler"/>
答案 1 :(得分:0)
当Handler是我的App_Code目录中的一个类时,以下内容适用于我:
<add verb="*" path="*test.aspx" type="Test.Handler,__Code"/>
(我只添加了像“* .test”这样的整个前缀的处理程序。)
答案 2 :(得分:0)
默认情况下,asp.net Pagerhandlerfactory对象将处理所有.aspx资源请求。