0

好的..我知道这被问了很多次,我看了一堆关于这个的问题和答案,但对我没有任何帮助,我快疯了。我试图将 elmah 放到我的 asp.net mvc 5 应用程序中,但我无法让它工作。我不断收到未找到的错误。

我对 elmah 的配置是:

  <appSettings>
    <add key="elmah.mvc.disableHandler" value="false" />
    <add key="elmah.mvc.disableHandleErrorFilter" value="false" />
    <add key="elmah.mvc.requiresAuthentication" value="false" />
    <add key="elmah.mvc.IgnoreDefaultRoute" value="false" />
    <add key="elmah.mvc.allowedRoles" value="*" />
    <add key="elmah.mvc.allowedUsers" value="*" />
    <add key="elmah.mvc.route" value="elmah" />
  </appSettings>

<sectionGroup name="elmah">
      <section name="security" requirePermission="false" type="Elmah.SecuritySectionHandler, Elmah" />
      <section name="errorLog" requirePermission="false" type="Elmah.ErrorLogSectionHandler, Elmah" />
      <section name="errorMail" requirePermission="false" type="Elmah.ErrorMailSectionHandler, Elmah" />
      <section name="errorFilter" requirePermission="false" type="Elmah.ErrorFilterSectionHandler, Elmah" />
    </sectionGroup>

  <system.web>
    <customErrors mode="On"></customErrors>
    <httpModules>
      <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" />
      <add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" />
      <add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" />
    </httpModules>
    <httpHandlers>
      <add verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" />
    </httpHandlers>
  </system.web>



 <system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
    <handlers>
      <add name="Elmah" verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" />
    </handlers>
    <modules>
      <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah"/>
      <!--<add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" preCondition="managedHandler" />
      <add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" preCondition="managedHandler" />
      <add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" preCondition="managedHandler" />-->
    </modules>
  </system.webServer>
  <elmah>
    <security allowRemoteAccess="1" />
    <errorLog type="Elmah.XmlFileErrorLog, Elmah" logPath="~/App_Data/elmah" />
  </elmah>

是的,我在溃败配置中忽略了 .axd ..

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

我错过了什么??

4

1 回答 1

0

您需要在 IIS 中为该扩展创建一个 MIME 类型:

要为特定扩展定义 MIME 类型,请执行以下步骤:

打开 IIS Microsoft 管理控制台 (MMC),右键单击本地计算机名称,然后单击属性。单击 HTTP 标头。单击 MIME 类型。单击新建。在“扩展名”框中,键入所需的文件扩展名(例如,.axed) 在“MIME 类型”框中,键入 application/octet-stream。应用新设置。请注意,您必须重新启动万维网发布服务或等待工作进程回收以使更改生效。在此示例中,IIS 现在提供扩展名为 .axed 的文件。

于 2014-12-29T23:49:12.537 回答