2010-10-14 20 views
8

İstisna işlem dosyamda 404'e bir durum kodu ayarladıktan sonra hata sayfası için n-HTML sayfası oluşturuyorum (başarısızlık balinalarını düşünün).IIS7 Hijacks Coldfusion Hata Sayfa

<cfheader statuscode="404" statustext="Application Exception"> 

<html><head><title>Error</title></head><body><h1>There was an error yo!</h1></body></html> 

Bu, açıkça basitleştirildi, ancak her şeyin gösterildiğinden emin olmak için.

Bulduğum şey, bir ASP.NET isteğinden, IIS'nin kendi hata sayfasını göstermesini engellemek için "Response.TrySkipIisCustomErrors = true" değişkenini ayarlayabilir.

Coldfusion'da birileri nasıl yapabilir?/IIS’e, bildiğim kadarıyla benden daha iyi bildiği şeyleri durdurabilmesini söyleyebilirim.

cevap

21

Bu yardımcı olabilir: Daha fazla bilgi için

<configuration> 
    <system.webServer> 
    <httpErrors existingResponse="PassThrough" /> 
    </system.webServer> 
</configuration> 

:

HTTP Errors (IIS.NET)
What to expect from IIS7 custom error module (IIS.NET)

size bir .NET HttpModule yazma deneyebilirsiniz sonra çalışmazsaayarlamak için IIS isteği/yanıtı boru hattına takmak. Uygun değil.

ASP.NET'in çalışan isteği nesnesi, MgdSetStatusW adlı dışa aktarılan işlevi çağırır. Buradaki problem, Coldfusion'un bu bayrağa maruz kalmaması durumunda, değeri doğrudan CF olarak ayarlayamayacağınızdır. .NET Reflektör poking

Ben ASP.NET kullanarak tepki durumu ayarlanırken görülme: çalışmış ait

[DllImport("webengine4.dll", CharSet=CharSet.Unicode)] 
internal static extern int MgdSetStatusW(IntPtr pRequestContext, 
    int dwStatusCode, int dwSubStatusCode, string pszReason, 
    string pszErrorDescription, bool fTrySkipCustomErrors); 
+0

web.config yöntemi tür, ama yine de saçma "sayfa bir nedeni görüntülenemiyor prepends iç sunucu hatası oluştu. " şablonunu görüntülemeden önce metin bloğu. NET için bir şey yazacağımı bilmiyorum, çünkü yapması gereken çok aptalca olurdu. Bu çözümün modüler olması gerekir, böylece site Apache/IIS6/IIS7 olsun, herhangi bir sunucuya kopyalanırsa, her şey çalışır. –

+0

@Tyler - muhtemelen Adobe ile yükseltmek için bir şey, bu süreç olsa acı verici. – Kev

+0

Bekleyin, boşver, Yanlış yazdım, mevcutResponse yerine errorMode kullanıyordum. Şimdi harika çalışıyor, teşekkürler. –