2011-04-01 23 views
9

Google Chrome ve Visual Studio Development Server'ı kullanırken ASP .NET MVC denetleyicisine "favicon.ico" isteğinin iletildiğini fark ettim. controllerType parametresi, null değerine sahiptir, bu da şaşırtıcı bir şekilde, yalnızca bir hata günlüğü nedeniyle bildiğim işlenmemiş bir istisna ile sonuçlanır.Denetleyici fabrika "favicon.ico" isteğini alan

Talebin nereden geldiğini ve neden ASP .NET'in denetleyici fabrikalarına gitmesine izin verdiği hakkında herhangi bir fikir var mı? Örneğin CSS dosyaları ve görüntüleri doğru şekilde filtreleniyor.

cevap

9

. Eğer hata ayıklama modunda olduğu gibi sadece bu gördükten size akılda başka kaynak yönetmek için görmezden yolları

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

için

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

Ayı ekleyebilirsiniz. Kullanıcılarınız onu görmeyecek (En uygun şekilde değil, ama ben tasarlamadım)

+3

"routes.IgnoreRoute (" favicon.ico ");" İşe teşekkürler! –

+0

Oh .... Onu geri alıyorum. Şimdi sadece 'Dosya Bulunamadı' istisnası alıyorum. –

+0

Evet, bu bir denetleyiciye eşleme denemesini engelleyecektir. Dosyayı eklemeniz gerekiyor (en kolay çözüm) - Ek bilgi daha ekledim – Slappy

2

Bunun da krom ile meydana geldiğini fark ettim. /favicon.ico'nun varsayılan yolu ile site favicon'u (sekmesinin yanındaki küçük simge) arayan tarayıcı olduğuna inanıyorum. MVC, bu yolla eşleşen bir denetleyici bulmaya çalışır ve boş görünür.

En kolay düzeltme, yalnızca kök dizininizde favicon.ico adında favicon görüntüsü eklenmesi veya html'inizin baş kısmındaki bir bağlantı etiketinin başka bir yere yönlendirilmesidir.

örn

tüm istekleri boruya tünel olan entegre modunda IIS7 ile
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />