我收到错误:
“未找到路径'/favicon.ico'的控制器或未实现IController”
然后我想:框架如何知道它有哪些文件来实例化控制器,因为脚本,css和其他文件也是如此?
(从未想过这一点,但现在,favicon正在抱怨,我在想......)
但回到错误,为什么会发生这种情况?
答案 0 :(得分:106)
将此添加到 global.asax :
routes.IgnoreRoute("favicon.ico");
答案 1 :(得分:19)
您还可以使用约束
指定忽略路线routes.IgnoreRoute("{*favicon}", new { favicon = @"(.*/)?favicon.ico(/.*)?" });
答案 2 :(得分:13)
最佳答案是正确的。
routes.IgnoreRoute("{*favicon}", new { favicon = @"(.*/)?favicon.ico(/.*)?" });
但是对于较新版本的MVC,你必须在 RouteConfig.cs 中的 RegisterRoutes 方法的顶部添加它(所以在routes.MapRoute(..)之前的某个地方)叫)。
答案 3 :(得分:3)
您可能正在使用VS Web服务器获取此信息。正确?
你不会用IIS得到这个,因为IIS(默认情况下)处理图像请求(.ico,.jpg,.gif等等),因此它们不会进入你的应用程序。
答案 4 :(得分:0)
有趣的是,只有当我选中了tools->options->debugging
下的“启用我的代码”选项时才会出现此错误,并且只要我取消选中它,我就不会再收到此错误。
但请注意,似乎错误仍在幕后抛出,但在内部被立即捕获,因此最好的解决方案是在global.asax中编码,忽略它,如其他答案所示。