2011-04-01 11 views
9

Me he dado cuenta de que una solicitud al "favicon.ico" se está transfiriendo a mi fábrica de controladores ASP .NET MVC cuando se usa Google Chrome y el Visual Studio Development Server. El parámetro controllerType tiene un valor de null que, como era de esperar, da como resultado una excepción no controlada, que solo conozco debido a un registro de errores.Solicitud de recepción de fábrica del controlador para "favicon.ico"

¿Alguna idea de dónde viene la solicitud y por qué ASP .NET permite que llegue a la fábrica del controlador? Los archivos e imágenes CSS, por ejemplo, se filtran correctamente.

Respuesta

9

Con IIS7 en modo integrado todas las peticiones son tunelizados a la tubería. puedes añadir a tus rutas ignorar

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

Otro recurso

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

Tenga en cuenta que sólo viendo esto como que está en modo de depuración. Sus usuarios no lo verán (Aún no es óptimo, pero oye, no lo diseñé)

+3

"routes.IgnoreRoute (" favicon.ico ");" hace el trabajo gracias! –

+0

Oh ... Lo llevo de vuelta. Ahora solo recibo una excepción 'Archivo no encontrado'. –

+0

Sí, eso evitará que se intente mapear a un controlador. También necesita agregar el archivo (la solución más fácil) - Se agregó más información – Slappy

2

También he notado que esto ocurre con chrome. Creo que es el navegador que busca el favicon del sitio (pequeño ícono al lado de su pestaña) con la ruta predeterminada de /favicon.ico. MVC intenta encontrar un controlador que coincida con esa ruta y aparece en blanco.

La solución más fácil es, probablemente, solo para agregar una imagen de favicon en su directorio raíz llamado favicon.ico o usando una etiqueta de enlace en la sección principal de su html para apuntarlo a otro lugar.

por ejemplo

<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" /> 
Cuestiones relacionadas