2

对于我的 MVC4 应用程序,我使用 NUGET 将 ELMAH 加载到我的应用程序中。但在 web.config 中,我收到以下错误消息:

位置元素未使用;在 elmah.axd 中找不到项目项。

我是否打算创建一个具有此名称的文件?我该如何解决?

<location path="elmah.axd" inheritInChildApplications="false">
    <system.web>
      <httpHandlers>
        <add verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" />
      </httpHandlers>


        See http://code.google.com/p/elmah/wiki/SecuringErrorLogPages for 
        more information on using ASP.NET authorization securing ELMAH.

      <authorization>
        <allow roles="admin" />
        <deny users="*" />  
      </authorization>


    </system.web>
    <system.webServer>
      <handlers>
        <add name="ELMAH" verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" preCondition="integratedMode" />
      </handlers>
    </system.webServer>
  </location>
4

3 回答 3

4

如果您使用 Elmah.MVC.dll,则无需为 elmah.axd 添加处理程序。Elmah.MVC.dll 包含一个控制器,使您可以访问http://www.yourwebsite.com/elmah上的日志。这在以下位置进行了完整描述:

https://github.com/alexanderbeletsky/elmah.mvc

我推荐这种方法,因为它比 elmah.axd 处理程序更易于配置。

于 2013-03-13T23:33:07.447 回答
0

我通过 NuGet 安装了 Elmah.MVC。

大多数 web.config 设置是由安装自动添加的。

不得不补充:

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

和:

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

然后在配置的最底部会有一个空白部分,所以我将其修改为:

<elmah>
    <errorLog type="Elmah.XmlFileErrorLog, Elmah" logPath="~/App_Data" />
</elmah>

并记录到 XML 文件有效!

请注意,如果不合适,您可能需要调整 logPath。

吉娜!VS2012,MVC4,所有更新/sp应用

于 2013-03-27T20:01:35.020 回答
0

您需要在 RegisterRoutes 中添加以下内容:

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

于 2013-03-13T12:56:22.057 回答