我出于测试目的制作了一个自定义处理程序,如下所示:
namespace MVCHttpHandlerProject
{
public class SomeHandler : IHttpHandler
{
public bool IsReusable
{
get { return true; }
}
public void ProcessRequest(HttpContext context)
{
context.Response.Write("SomeHandler test");
}
}
}
然后我将下一行添加到我的 web.config 中:
<httpHandlers>
<add path="SomeHandler.axd" verb="*" type="MVCHttpHandlerProject.SomeHandler, MVCHttpHandlerProject" /></httpHandlers>
以及<system.webServer>
<handlers>
<add path="SomeHandler.axd" verb="*" type="MVCHttpHandlerProject.SomeHandler, MVCHttpHandlerProject" name="SomeHandler.axd"/>
</handlers>
我的 Global.asax.cs 未修改,看起来与使用 routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
生成时一模一样。在 RegisterRoutes 方法中。
不过,当我尝试访问“http://localhost/Home/SomeHandler.axd”时,会出现“找不到资源”错误。为什么?我错过了什么?我该如何解决这个问题?
最佳答案
您应该请求http://localhost/SomeHandler.axd
而不是http://localhost/Home/SomeHandler.axd
。没有家
。
关于asp.net-mvc-3 - 在 ASP.NET MVC 3 中注册 HttpHandler 并收到 404 Not Found 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12525488/