如何确保Elmah在MVC中的区域

时间:2012-04-17 18:30:57

标签: asp.net-mvc elmah

您正在尝试保护elmah只能从名为admin:/ admin / area

的mvc区域内访问

我已将以下内容添加到路由配置的顶部,因此它们首先出现:

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

并在system.web和system.webServer:

下的web.config中进行以下操作
  <handlers>
     ...
      <add verb="POST,GET,HEAD" path="/admin/elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" />
    </handlers>

然而我一直在:

The controller for path '/admin/elmah.axd' could not be found.

似乎路线没有被忽略?

1 个答案:

答案 0 :(得分:1)

Elmah.MVC nuget可能会有所帮助。

在版本2.0.0之前(例如1.3.2),它添加了一个名为“admin”的区域,并在其中添加了一个名为“elmah”的控制器。因此,您可以从web.config中删除带有“elmah.axd”的处理程序,并仍然可以访问“/ admin / elmah”上的elmah。 然后,您可以通过向elmahcontroller添加autorize属性来保护此路由。

在版本&gt; 2.0.0它已更改为不添加名为admin的区域。而是在“/ elmah”上访问elmah。 版本&gt; 2.0.0还会自动从web.config中删除elmah.axd。