2

を使用してASP.NET MVC 3います。と も使用AutofacしてMVC Extensionsいます。私が最初に得たエラーは次のとおりです。

The controller for path '/favicon.ico' was not found or does not implement IController.

私はいくつかの投稿を読みましたが、それらはすべて私が次のように入力することを推奨しました:

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

その後、次のエラーが発生し始めました。

File does not exist.
ExceptionType:HttpException Stacktrace:
     at System.Web.StaticFileHandler.GetFileInfo(String virtualPathWithPathInfo, String physicalPath, HttpResponse response)
     at System.Web.StaticFileHandler.ProcessRequestInternal(HttpContext context, String overrideVirtualPath)
     at System.Web.DefaultHttpHandler.BeginProcessRequest(HttpContext context, AsyncCallback callback, Object state)
     at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
     at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

どのファイルを開こうとしているのかわからないので、エラーはあまりわかりませんか? この問題を解決するにはどうすればよいですか? 私はファビコンを使用していません。を使用してInternet Explorer 8います。

4

3 に答える 3

2

favicon.ico のリクエストは、ほとんどの最新のブラウザーによってやみくもに行われており、favicon がない場合 (これは適切な動作です) 、 404 (ファイルが見つかりません)が返されることを期待しています。以下に、リンク タイプ「アイコン」に関する HTML5 ワーキング ドラフトからの引用を示します 。

HTTP または HTTPS 経由で取得されたドキュメントの場合、icon キーワードを含むリンクがない場合、ユーザー エージェントは代わりに、ドキュメントのアドレスに対して URL /favicon.ico を解決することによって取得された絶対 URL を持つアイコンを取得して使用しようとする場合があります。ページは、icon キーワードを使用してそのアイコンを宣言していました。

例外が表示される理由は、マネージ/統合パイプライン モードを使用するように構成された Web 開発サーバーまたは IISが、すべての要求をGlobal.asax (エラーを含む) に送信するためです。

ファビコンへの次のダミー リンクを作成することで、ブラウザがリクエストを作成しないようにすることができます。

<html>
    <head>
        <link rel="shortcut icon" href="#" />
        ...
    </head>
...
</html>

favicon 用の空のファイルを自分で作成するか、404 と /favicon.ico をチェックしてエラーを除外HttpException.GetHttpCode()することでき((System.Web.HttpApplication)Sender).Context.Request.Urlます。

于 2012-11-12T09:12:18.917 に答える
0

サイトに を入れたくないfaviconが、それでもこのエラーを取り除きたい場合は、サイズ 0 バイトのファイルを作成し、favicon.ico.

于 2012-11-12T09:17:31.103 に答える
0

試す代替ルールは単純明快です。

// add ignore route for favicon.ico
routes.IgnoreRoute("favicon.ico");
于 2013-01-18T15:46:15.750 に答える