Mvc: favicon.ico также ищет контроллер?

Я получаю сообщение об ошибке:

"Контроллер для пути" /favicon.ico "не найден или не реализует IController"

Затем я подумал: как система знает, для каких файлов она должна создавать экземпляр контроллера, потому что то же самое верно для script, css и других файлов?

(никогда не думал об этом, но теперь фравикон жалуется, мне было интересно....)

Но вернемся к ошибке, почему это происходит?

Ответ 1

Добавьте это к вам global.asax:

routes.IgnoreRoute("favicon.ico");

Ответ 2

Вы также можете указать маршрут игнорирования с ограничениями

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

Ответ 3

Лучшие ответы правильные.

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

Но для более новых версий MVC вы должны добавить это вверху метода RegisterRoutes в RouteConfig.cs (так что где-то перед маршрутами .MapRoute(..) является называется).

Ответ 4

Вероятно, вы получаете это с веб-сервером VS. Правильно?

Вы не получили бы это с помощью IIS, поскольку IIS (по умолчанию) обрабатывает запросы на изображения (.ico,.jpg,.gif и т.д.), и поэтому они не попадают в ваше приложение.

Ответ 5

Интересно, как это звучит, я получил эту ошибку, только если я проверил параметр "Включить только мой код" в tools->options->debugging, и как только я отключил его, я больше не получаю эту ошибку.

Обратите внимание, однако, что кажется, что ошибка по-прежнему бросается за кулисы, но попадает сразу внутри, поэтому лучшим решением является код в global.asax, чтобы игнорировать его, как указывают другие ответы.