पर काम करता है मैं निम्नलिखित ब्लॉग पोस्ट के सिद्धांतों का पालन कर रहा हूं और मुझे वह व्यवहार मिल रहा है जब मैं विजुअल स्टूडियो 2010 के वेब सर्वर में निर्मित डब्ल्यूसीएफ सेवा को डीबग करता हूं।आईआईएस 7 जेएसओएन दोषों को वापस क्यों नहीं कर रहा है? * मेरी * मशीन
http://zamd.net/2008/07/08/error-handling-with-webhttpbinding-for-ajaxjson/
जब अपने आवेदन एक FaultException() फेंकता है, मैं अपने स्थानीय मशीन पर कि गलती के JSON प्रतिनिधित्व देख सकते हैं। आवेदन उचित HttpStatusCode (इस मामले में, 401 अनधिकृत) भी देता है, जो वांछित व्यवहार है।
{"Code":"UserNotLoggedInFault","DisplayText":"You must be logged in to access this resource.","InternalText":"User is not logged in"}
जब मैं IIS 7.0 करने के लिए अपने आवेदन को तैनात हालांकि, मैं सही HttpStatusCode मिलता है, लेकिन एचटीएमएल लौटे सामान्य पाठ है कि स्थिति कोड के साथ जुड़ा हुआ है:
आप की अनुमति नहीं है इस निर्देशिका या पेज को देखने के लिए।
क्योंकि यह स्थानीय रूप से काम कर रहा है, मुझे लगता है कि यह मुद्दा आईआईएस कॉन्फ़िगरेशन सेटिंग है। मैंने पहले ही आईआईएस को हटा दिया है: एरर पेज वैल्यू जो एरर स्टेटस को अवरुद्ध कर रहे थे (यह% SystemDrive% \ inetpub \ custerr \\ 401.htm से स्वरूपित एचटीएमएल वापस करने के लिए प्रयुक्त होता था)
क्या किसी को पता है कि आईआईएस सेटिंग्स को बदलने की जरूरत है जेएसओएन प्रतिक्रिया को पार करने की अनुमति देने के लिए जब 200 रेंज के बाहर एक HTTP स्थिति वापस आती है? ... या शायद मुझे कुछ और करने की ज़रूरत है?
अद्यतन # 1
यह केवल प्रकट होता है जब अपने आवेदन एक FaultException कि भी अनधिकृत (401) को HttpStatusCode सेट फेंकता हो रहा हो करने के लिए। यदि मेरा आवेदन 404 का स्टेटस कोड नहीं मिला है, तो JSON ठीक से वापस आ गया है।
प्रश्न अभी भी खड़ा है, लेकिन मुझे लगता है कि यह केवल 401 अनधिकृत स्थिति कोड लौटने पर लागू होता है।
यहाँ प्रतिक्रिया के कुछ स्क्रीनशॉट के रूप में चार्ल्स वेब प्रॉक्सी द्वारा कब्जा कर लिया हैं
यहाँ यह कैसा जब मैं अपने स्थानीय मशीन मारा लग रहा है
अद्यतन # 2
तो यह होता है यदि मैं सर्वर में रिमोट डेस्कटॉप करता हूं और स्थानीयहोस्ट के माध्यम से साइट पर हिट करता हूं। जब मैं अपना यूआरएल दबाता हूं जिसके लिए प्रमाणीकरण की आवश्यकता होती है, तो मुझे उचित JSON ऑब्जेक्ट वापस मिल जाता है।
तो क्या इसका मतलब है कि आईआईएस 401 स्थिति कोड को अलग ढंग से और गैर-प्रमाणीकृत उपयोगकर्ताओं उचित प्रतिक्रिया से बच रहे हैं व्यवहार करता है?
आपकी स्थानीय होस्टिंग - आईआईएस या आईआईएस एक्सप्रेस क्या है? क्या आप सर्वर पर अन्य साइटों से प्रतिक्रिया बनने में सक्षम हैं? – Regfor
स्थानीय रूप से, मैं WebDev.WebServer40.exe चला रहा हूं। मेरे विंडोज सर्वर 2008 आईआईएस 7 सर्वर पर, मैं पोस्ट कर सकता हूं और JSON ऑब्जेक्ट प्राप्त कर सकता हूं और सबकुछ बढ़िया काम करता है, सिवाय इसके कि जब मैं एक FaultException फेंक देता हूं। जब मैं इसे स्थानीय रूप से फेंकता हूं, तो मुझे JSON संरचना मिलती है। जब मैं इसे अपने विंडोज सर्वर/आईआईएस बॉक्स पर फेंकता हूं, तो मुझे "आपको इस निर्देशिका या पेज को देखने की अनुमति नहीं है।" प्रतिक्रिया। – JackAce
और सर्वर से अन्य वेब ऐप्स या सेवाओं के बारे में क्या। क्या आप सर्वर से कुछ और करने के लिए सफल HTTP कॉल करने में सक्षम हैं? – Regfor