2010-10-14 14 views
8

मेरी अपवाद हैंडलिंग फ़ाइल में, मैंने 404 पर स्टेटसोड सेट सेट किया है और फिर त्रुटि पृष्ठ के लिए एन एचटीएमएल पेज प्रस्तुत किया है (असफल असफल)।आईआईएस 7 हाइजैक माई कोल्डफ्यूजन त्रुटि पेज

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

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

यह स्पष्ट रूप से सरलीकृत है, लेकिन यह सुनिश्चित करने के लिए कि सब कुछ प्रदर्शित किया गया था।

जो मैंने पाया है वह है कि एएसपी.NET अनुरोध से, वे आईआईएस को अपना स्वयं का त्रुटि पृष्ठ दिखाने से रोकने के लिए एक चर "Response.TrySkipIisCustomErrors = true" सेट कर सकते हैं।

कोल्डफ्यूज़न में कोई कैसे कर सकता है/मैं आईआईएस को अपने विचारों को रोकने के लिए कैसे कह सकता हूं कि यह मुझे शेंगेन से बेहतर जानता है।

उत्तर

21

यह मदद कर सकता है:

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

अधिक जानकारी के लिए:

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

यदि इससे काम नहीं है कि आप एक .NET HttpModule लिखने की कोशिश कर सकते हैंसेट करने के लिए आईआईएस अनुरोध/प्रतिक्रिया पाइपलाइन में प्लग करने के लिए। आदर्श नहीं।

एएसपी.नेट के कार्यकर्ता अनुरोध वस्तु MgdSetStatusW नामक निर्यात किए गए फ़ंक्शन को कॉल करती है। यहां समस्या यह है कि जब तक कोल्डफ्यूजन इस ध्वज को उजागर नहीं करता है तब तक आप सीधे सीएफ में मूल्य निर्धारित नहीं कर पाएंगे।

नेट परावर्तक साथ आसपास poking मैंने देखा ASP.NET का उपयोग कर प्रतिसाद स्थिति की स्थापना: काम की

[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 विधि तरह, लेकिन यह अभी भी पहले जोड़ता एक हास्यास्पद "पृष्ठ एक कारण प्रदर्शित नहीं किया जा सकता है आंतरिक सर्वर त्रुटि आई है। " मेरे टेम्पलेट को प्रदर्शित करने से पहले पाठ का ब्लॉक। मुझे नहीं पता कि मैं .NET के लिए कुछ भी लिखूंगा क्योंकि ऐसा करने के लिए बहुत बेवकूफ होगा। इस समाधान को मॉड्यूलर होना चाहिए ताकि यदि साइट किसी भी सर्वर पर कॉपी की गई हो, चाहे वह अपाचे/आईआईएस 6/आईआईएस 7 हो, सबकुछ बस काम करता है। –

+0

@ टायलर - शायद एडोब के साथ उठने के लिए कुछ, दर्दनाक हालांकि यह प्रक्रिया हो सकती है। – Kev

+0

रुको, कभी नहीं, मुझे यह गलत था, मैं मौजूदा रेस्पॉन्स के बजाय त्रुटि मोड का उपयोग कर रहा था। यह अब बहुत अच्छा काम करता है, धन्यवाद। –