Ответ 1
Добавьте это к вам global.asax:
routes.IgnoreRoute("favicon.ico");
Я получаю сообщение об ошибке:
"Контроллер для пути" /favicon.ico "не найден или не реализует IController"
Затем я подумал: как система знает, для каких файлов она должна создавать экземпляр контроллера, потому что то же самое верно для script, css и других файлов?
(никогда не думал об этом, но теперь фравикон жалуется, мне было интересно....)
Но вернемся к ошибке, почему это происходит?
Добавьте это к вам global.asax:
routes.IgnoreRoute("favicon.ico");
Вы также можете указать маршрут игнорирования с ограничениями
routes.IgnoreRoute("{*favicon}", new { favicon = @"(.*/)?favicon.ico(/.*)?" });
Лучшие ответы правильные.
routes.IgnoreRoute("{*favicon}", new { favicon = @"(.*/)?favicon.ico(/.*)?" });
Но для более новых версий MVC вы должны добавить это вверху метода RegisterRoutes в RouteConfig.cs (так что где-то перед маршрутами .MapRoute(..) является называется).
Вероятно, вы получаете это с веб-сервером VS. Правильно?
Вы не получили бы это с помощью IIS, поскольку IIS (по умолчанию) обрабатывает запросы на изображения (.ico,.jpg,.gif и т.д.), и поэтому они не попадают в ваше приложение.
Интересно, как это звучит, я получил эту ошибку, только если я проверил параметр "Включить только мой код" в tools->options->debugging
, и как только я отключил его, я больше не получаю эту ошибку.
Обратите внимание, однако, что кажется, что ошибка по-прежнему бросается за кулисы, но попадает сразу внутри, поэтому лучшим решением является код в global.asax, чтобы игнорировать его, как указывают другие ответы.