'路径控制器' /favicon.ico'没找到......'错误

时间:2017-07-17 19:50:03

标签: c# asp.net-mvc favicon

我们在Visual Studio 2015中构建了一个ASP.NET MVC 4应用程序。该应用程序使用Elmah.MVC进行异常处理。我们是三位开发人员;对于我们两个人来说,它在localhost上正常工作,但是一个开发人员正在收到此错误(由Elmah捕获):

  

路径控制器' /favicon.ico'未找到或未实现IController。

This post提供了一个解决方案,我已修改路由以包含它,并且相关开发人员已同步他的代码:

routes.IgnoreRoute("{*favicon}", new { favicon = @"(.*/)?favicon.ico(/.*)?" });

现在没有任何内容出现在Elmah中,但用户仍然看到一般错误:

500 - Internal server error.
There is a problem with the resource you are looking for, and it cannot be displayed.

可能发生什么事?感谢。

更新1:从Web.config中删除Elmah内容,让开发人员加载应用。它进入无限循环尝试验证用户,类似于this

我们正在使用OWIN-MixedAuth,问题很可能出在IIS Express设置上。我将让开发人员明天尝试并确认:

  1. 在Visual Studio中突出显示项目
  2. 打开'属性'右侧面板(或按F4)
  3. 设置' Windows身份验证'到'启用'
  4. 设置匿名身份验证'到'启用'
  5. 顾名思义,它是混合身份验证,因此必须启用这两种身份验证。

    更新2 :OWIN-Mixed Auth问题已修复。现在,它与Elmah使用的Web.config中的这三个HTTP模块有关:

    <httpModules>
      <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" />
      <add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" />
      <add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" />
    </httpModules>
    

    当我们发表评论时,一位开发人员可以访问该网站。这些模块做什么?他们为什么会引起问题?

2 个答案:

答案 0 :(得分:3)

终于解决了这个问题。我们必须进行两项修改:

  • 我们正在使用OWIN-MixedAuth,部分问题出在IIS Express设置上(在&#34;开发服务器&#34;部分下):

    1. 在Visual Studio中突出显示项目
    2. 打开&#39;属性&#39;右侧面板(或按F4)
    3. 设置&#39; Windows身份验证&#39;到&#39;启用&#39;
    4. 设置匿名身份验证&#39;到&#39;启用&#39;
  • 问题的另一部分:IIS Express使用的损坏的applicationhost.config文件:

    1. 确保您在Windows资源管理器中显示隐藏文件。
    2. 通过Windows资源管理器转到项目的根目录。
    3. 打开隐藏的.vs文件夹。
    4. 转到配置&gt; applicationhost.config,进行备份,并在记事本中打开它(Notepad ++更好)。
    5. 将其与我们其中一台计算机上正在运行的applicationhost.config文件进行比较。我们发现配置文件中列出的许多旧网站已不再使用了。
    6. 清理完毕后,启动应用程序就可以了。

答案 1 :(得分:1)

将此添加到您的global.asax文件中。

routes.IgnoreRoute("favicon.ico");