C# 在路径/文件夹下注册HttpHandler
为什么我不能在目录下注册HttpModuleC# 在路径/文件夹下注册HttpHandler,c#,asp.net-mvc-3,web-config,httphandler,C#,Asp.net Mvc 3,Web Config,Httphandler,为什么我不能在目录下注册HttpModule <system.web> <httpHandlers> <add verb="*" path="/home/facebookredirect.axd" type="Facebook.Web.FacebookAppRedirectHttpHandler, Facebook.Web" /> </httpHandlers> </system.web>
<system.web>
<httpHandlers>
<add verb="*" path="/home/facebookredirect.axd" type="Facebook.Web.FacebookAppRedirectHttpHandler, Facebook.Web" />
</httpHandlers>
</system.web>
当请求到达/home/facebookredirect.axd时,我得到一个404。为什么这不起作用
我希望facebookredirect.axd
在/home/
下面是frm,global.asx
routes.IgnoreRoute(“{resource}.axd/{*pathInfo}”)代码>
基本上<代码>主页
不存在,存在主页控制器。但我想用这条路 这可能是因为在您的处理程序之前添加了一个通用的.axd处理程序(即.*.axd)
如果在添加处理程序之前删除此项,然后在添加处理程序后将其重新添加,则可以解决问题(免责声明:尚未尝试,只是继续验证)。尝试添加resourceType=“未指定”
所以它变成了
<add name="facebookredirect.axd" verb="*" path="/home/facebookredirect.axd"
type="Facebook.Web.FacebookAppRedirectHttpHandler, Facebook.Web"
resourceType="Unspecified" />
至少,我有处理程序处理具有相同声明的文件夹
服务器上还应存在文件夹“Home”
path="/home/facebookredirect.axd"
应该是:
path="home/facebookredirect.axd"
您还需要从路由中排除此url:
routes.IgnoreRoute("home/{resource}.axd");
“Home”不必存在于服务器上,因为您没有格式良好的xml。请参阅system.web open标记。@它是有效的。我不想复制整件事。只需粘贴结束标记。对不起,啊。我很接近。我有一个变通的想法。谢谢:)你太棒了!
routes.IgnoreRoute("home/{resource}.axd");