Elmah.axd有一个Catch-all路线

时间:2011-01-26 14:42:00

标签: c# asp.net-mvc routing elmah

我有以下路线配置:

routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.IgnoreRoute("elmah.axd");
routes.IgnoreRoute("favicon.ico");

routes.MapRoutes(); // Register Attribute Based Routes which the current assembly contains

routes.MapRoute(
    "404",
    "{*url}",
    new { controller = MVC.Error.Name, action = "CatchAllUnmappedRoutes", id = UrlParameter.Optional }
);
routes.MapRoute(
    "Default",
    "{controller}/{action}/{id}",
    new { controller = MVC.Student.Name, action = "Index", id = UrlParameter.Optional }
);

当我导航到Elmah.axd时,正在调用“404”控制器。为什么呢?

1 个答案:

答案 0 :(得分:3)

在你的web.config中你是否启用了allowRemoteAccess?

 <elmah>
  <security allowRemoteAccess="1" />
 </elmah>

并且在部分组

    <sectionGroup name="elmah">
    <section name="security" requirePermission="false" 
type="Elmah.SecuritySectionHandler, Elmah" />

还要检查是否已定义此处理程序

    <add name="Elmah" verb="POST,GET,HEAD" path="elmah.axd" 
preCondition="integratedMode" type="Elmah.ErrorLogPageFactory, Elmah" />

或者这个取决于您正在运行的IIS版本

    <add verb="POST,GET,HEAD" path="elmah.axd" 
type="Elmah.ErrorLogPageFactory, Elmah" />

我肯定会尝试另外一件事,我觉得很惭愧地说“你有没有试过清理你的缓存!”因为这个人在使用chrome时咬了我一次