我们正在使用Visual Studio 2015构建一个ASP.NET MVC 4应用程序。该应用程序使用Elmah.MVC处理异常。我们有三个开发人员; 对于我们中的两个人,在本地主机上运行得很好,但是其中一个开发人员遇到了以下错误(由Elmah捕获):
现在Elmah中没有任何内容显示,但用户仍然看到通用的错误信息。
当我们将它们注释掉时,一个开发人员就能进入网站。这些模块是做什么的?为什么会引起问题?
此帖子提供了解决方案,我已经修改了路由以包含它,并且涉及的开发人员已同步他的代码:路径“/favicon.ico”的控制器未找到或未实现IController。
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设置上。我会让开发人员明天尝试并确认:
- 在Visual Studio中选择项目
- 打开右侧的“属性”面板(或按F4)
- 将“Windows身份验证”设置为“启用”
- 将“匿名身份验证”设置为“启用”
顾名思义,这是混合认证,因此必须启用两种类型的身份验证。
更新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>
当我们将它们注释掉时,一个开发人员就能进入网站。这些模块是做什么的?为什么会引起问题?
favicon.ico
文件。如果该文件仅存在但未被包含,则 VS 在调试期间不会将其复制到临时站点。 - Tommy/favicon.ico
是一些浏览器遵循的惯例,因此即使您在其他地方有一个网站图标并在页面中声明了它,您仍然会在日志中找到这种条目。/apple-touch-icon.png
也是如此。 - philippe_b