2013-03-13 59 views
2

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

位置元素未使用;在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> 

回答

0

您需要添加以下中的RegisterRoutes:

routes.IgnoreRoute( “elmah.axd/{*} PATHINFO”);

3

如果您使用Elmah.MVC.dll,则不需要为elmah.axd添加处理程序。 Elmah.MVC.dll包含一个控制器,使您能够访问您的日志http://www.yourwebsite.com/elmah。这是在全面的描述:

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

我推荐这种方法,因为它更简单比elmah.axd处理器配置。

+0

我正在使用您参考的Elmah MVC的nuget下载,它会在web.config中生成此代码。我发现当我注释掉上面的代码时,我可以访问elmah.axd作为网页。但是我没有选择CSS样式。所以我想知道为什么会发生这种情况 – arame3333 2013-03-14 07:40:36

+1

问题中显示的web.config所做的更改未被elmah.mvc nuget包添加。如果直接添加elmah nuget包,则会添加它们。我建议卸载所有与elmah相关的nuget软件包(应该清理web.config文件)。然后只重新安装elmah.mvc软件包。这会将必要的设置添加到web.config中,其中不包括修改。这里最大的区别是,elmah.mvc不安装elmah软件包,只有elmah.corelibrary和elmah.mvc – 2013-03-14 12:34:01

+0

那么完成这项工作,所以感谢你。然而,我有一个问题,那就是在显示Elmah错误的网页上没有找到CSS样式。我试图复制代码,但也许令人惊讶的是我得到了错误消息,说明代码已经通过Nuget安装。那么为什么它不会选择样式? – arame3333 2013-03-18 08:43:37

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应用