mvc: favicon.ico также ищет контроллер? - PullRequest
63 голосов
/ 07 января 2011

Я получаю ошибку:

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

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

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

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

Ответы [ 5 ]

106 голосов
/ 07 января 2011

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

routes.IgnoreRoute("favicon.ico");
19 голосов
/ 07 января 2011

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

routes.IgnoreRoute("{*favicon}", new { favicon = @"(.*/)?favicon.ico(/.*)?" });
13 голосов
/ 13 марта 2013

Верные ответы верны.

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

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

3 голосов
/ 07 января 2011

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

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

0 голосов
/ 16 июля 2012

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...