我有一个自定义的HTTP处理程序,正确实现IHttpHandler。以下是我在webConfig中配置的内容。如果我理解正确,此块应该以.test作为扩展名捕获任何请求。HTTP处理程序未被调用
<handlers>
<add name="SampleHandler" verb="*" path="*.test"
type="TestApp.App_Start.CustomHandler, TestApp" />
</handlers>
但是,这个处理程序唯一一次被调用的时候,我的路径深度为三,适用于请求的URL。所有其他请求将404
例如处理程序正常工作时的路径是:
localhost:XXX\some\fake\path\file.test
但不适合:
localhost:XXX\some\file.test
我使用ASP.NET MVC 5,和可疑它与路由有关。我也使用VS2013中提供的示例项目,除了添加到项目中的处理程序外,我还没有做其他任何事情。
更新:
我已经确定的默认路由的干扰。
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
即使配置了此路线,是否还有办法让它工作?
我不认为这就是它。本教程显示了它的工作原理http://www.hanselman.com/blog/BackToBasicsDynamicImageGenerationASPNETControllersRoutingIHttpHandlersAndRunAllManagedModulesForAllRequests.aspx – cgatian
请查看以下MSDN更新文档:http://msdn.microsoft.com/en-us/library/vstudio/46c5ddfy(v=vs .100).aspx – EduardoFernandes
是的,它说II6。我正在运行II8。为了补充,我也试过这个,IIS抱怨有无效的设置。 – cgatian