2010-07-06 23 views
5

'daki özel hata ayarlarını kullanırken IIS7'nin 'tek liner' hatası alıyorum. 404'ü ve zaman zaman 500 durum kodunu çeşitli, uygun noktalarda döndüren bir ASP.NET MVC uygulamasına sahibim. Web.config

Response.StatusCode = (int)HttpStatusCode.NotFound; 

Ben Bu durum kodlarının bir set

, ben de uygun şekilde TrySkipIisCustomErrors özelliğini ayarlayın. Şu anda yapmak istiyorum ne

Response.TrySkipIisCustomErrors = true 

, kendimi ayarlıyorum bu hataların, geçmesine ve böyle ben değilim statik dosyalar üzerinde 404'ler oluşabilecek herhangi başka hatalar (yakalamak için IIS yapılandırmak olduğunu benim uygulamada ASP.NET veya yakalanmamış 500 hataları istek gönderebilir (burada muhtemelen TrySkipIisCustomErrors propety framework tarafından ayarlanan olmaz)

My system.webServer/httpErrors düğüm şuna benzer:.

<httpErrors existingResponse="Auto" errorMode="Custom"> 
</httpErrors> 

Bu, kendi ASP.NET hatalarımı nerede döndürür set TrySkipIisCustomErrors = true ve yakalanmamış 500s için standart IIS hata sayfaları, statik dosya 404'ler vb

Sonra bu gibi değiştirerek denedim:

<httpErrors existingResponse="Auto" errorMode="Custom" defaultPath="/Skins/Shared/Error/Error.html" defaultResponseMode="ExecuteURL"> 
    <clear /> 
</httpErrors> 

Bu benim özel hata sayfasını görüntülemek gerektiğine inanıyoruz standart bir IIS'in yeri. Ancak, bu kodu eklediğimde tek satırlık bir IIS hatası alıyorum ("Bir iç sunucu hatası oluştuğundan sayfa görüntülenemiyor.") Ve bir 500 durum kodu döndürüyor.

Bunun, yapılandırmamdaki bir hatadan kaynaklandığını farz ediyorum, ancak hayatımın neyi yanlış yaptığımı anlayamıyorum!

Ben de aynı sonuçlarla, bu yaklaşımı denedi:

<httpErrors existingResponse="Auto" errorMode="Custom" defaultPath="Skins\Shared\Error\Error.html" defaultResponseMode="File"> 
    <clear /> 
</httpErrors> 

bile tamamen farklı bir URL'ye bir yönlendirme ayarı aynı sorun üretir.

Bu sayfayı başkalarına referans olarak kullanıyorum: http://blogs.iis.net/ksingla/archive/2008/02/18/what-to-expect-from-iis7-custom-error-module.aspx.

Hata dosyası kesinlikle var ve ben bir tarayıcı kullanarak doğrudan verebiliyorum.

Bir yana, sistemle ne yapmam gerektiğinden tam olarak emin değilim.Web \ customErrors node. Bu yalnızca bir IIS6 ayarı mı yoksa ASP.NET ile bir ilişkisi var mı? Şu anda web.config dosyasına dahil etmiyorum.

+0

Bunu çözmeyi başardınız mı?Aynı sorunu yaşıyorum: s – Robba

+0

Windows Olay Günlüğünde hangi hatalar var? 'Entegre' veya 'Klasik' moduna ayarlanmış olan 'Yönetilen boru hattı modu' uygulama havuzunuz var mı? (Senaryo için 'Integrated' olmalı.) –

+0

Uygulama havuzu tümleşik modda. Hala sorun var ve bir çözüm bulamadık. Olay Günlüğünde hata yok. Oldukça sinir bozucu! – Jamie

cevap

1

bunu sistem.webserver düğümüne ekleyin. IIS'ye, hataların ASP.Net tarafından elden geçirilmesine izin vereceğini bildirecektir.

<httpErrors existingResponse="PassThrough" /> 
+0

Saçlarımı çekmeme yardım etmeme yardım ettiğin için teşekkürler, aptalca ben istediğim gibi 500 yanıt vermeme izin vermiyor –

1

Bu eski bir soru olduğunu biliyorum ama ben sadece son zamanlarda anladım son birkaç gündür ettirmektedirler sorununa aynısı. Ne benim için çalıştı:

deneyin tamamen web.config

<httpErrors> 

eleman çıkarmadan.