エラーが発生します:
「パス '/favicon.ico'のコントローラーが見つからないか、IControllerを実装していません」
それから、スクリプト、CSS、その他のファイルにも同じことが当てはまるので、フレームワークはどのファイルについてコントローラーをインスタンス化する必要があるかをどのように知るのでしょうか?
(そのことを考えたことはありませんが、今ではファビコンが不平を言っています、私は疑問に思っていました....)
しかし、エラーに戻って、なぜそれが起こるのですか?
これをあなたに追加してくださいglobal.asax:
routes.IgnoreRoute("favicon.ico");
制約付きの無視ルートを指定することもできます
routes.IgnoreRoute("{*favicon}", new { favicon = @"(.*/)?favicon.ico(/.*)?" });
一番上の答えは正しいです。
routes.IgnoreRoute("{*favicon}", new { favicon = @"(.*/)?favicon.ico(/.*)?" });
しかし、MVCの新しいバージョンの場合、これをRouteConfig.csのRegisterRoutesメソッドの先頭に追加する必要があります(したがって、routes.MapRoute(..)が呼び出される前のどこかに)。
これはおそらくVS Webサーバーで取得しています。正しい?
IIS IIS(デフォルトでは)画像(.ico、.jpg、.gifなど)のリクエストを処理するため、したがって、彼らはあなたのアプリに到達しません。
興味深いことに、このエラーが発生したのは、tools->options->debugging
、チェックを外すとすぐに、このエラーは発生しなくなります。
ただし、エラーは依然として舞台裏でスローされているように見えますが、すぐに内部でキャッチされるため、global.asaxでコーディングして、他の回答が示唆するようにそれを無視することです。