2011-04-01 15 views
9

Google ChromeとVisual Studio Development Serverを使用しているときに、"favicon.ico"へのリクエストがASP .NET MVCコントローラ工場に渡されています。 controllerTypeパラメータの値はnullです。これは意外にも、エラーログのために私が知っている未処理の例外を引き起こします。コントローラ工場が「favicon.ico」のリクエストを受け取りました

リクエストはどこから来ているのですか?また、ASP .NETがコントローラーファクトリにアクセスするのはなぜですか? CSSファイルや画像などは正しくフィルタリングされています。

答えて

9

統合モードでのすべての要求は、パイプにトンネリングされています。あなたがデバッグモードであるとしてこれだけを見て、あなたに心の中でもう一つのリソースをあなたの無視のルート

asp.net mvc does it handle all requests? - iis 7 integrated mode

http://weblogs.asp.net/gunnarpeipman/archive/2009/02/26/asp-net-mvc-ignore-requests-to-favicon-ico.aspx

ベアを追加することができます。あなたのユーザーはそれを見ません(最適ではありませんが、私はそれをデザインしていませんでした)

+3

"routes.IgnoreRoute(" favicon.ico ");"仕事をありがとう! –

+0

ああ....私はそれを取り戻す。今、私は代わりに 'ファイルが見つかりません'例外を取得しています。 –

+0

はい、コントローラへのマップの試行を妨げます。あなたもファイルを追加する必要があります(最も簡単な解決策) - いくつかの詳細情報を追加しました – Slappy

2

私はこれもクロムが発生していることに気付きました。私はそれが/ favicon.icoのデフォルトのパスでサイトのfavicon(そのタブの隣に小さなアイコン)を探しているブラウザだと思う。 MVCはそのルートと一致するコントローラを見つけようとし、空白になります。

おそらく最も簡単な修正はfavicon.icoという名前のルートディレクトリにfaviconイメージを追加するか、htmlのheadセクションにリンクタグを使用して別の場所を指すことでしょう。 IIS7で

例えば

<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" /> 
関連する問題