2012-03-19 17 views
5

में पैच HTTP क्रिया पंजीकृत करना मैं एएसपी एमवीसी 3 के साथ लागू एक विश्वसनीय सेवा में हाल ही में अनुमोदित पैच HTTP क्रिया को कार्यान्वित करना चाहता हूं। मैंने web.config फ़ाइल में निम्न सेटिंग्स को जोड़ा है।आईआईएस 7/7.5

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 
    <system.webServer> 
     <handlers> 
      <add name="PATCHVerbHandler" path="*" verb="PATCH" modules="ProtocolSupportModule" requireAccess="None" /> 
     </handlers> 
     <security> 
      <requestFiltering> 
       <verbs> 
        <add verb="PATCH" allowed="true" /> 
       </verbs> 
      </requestFiltering> 
     </security> 
    </system.webServer> 
</configuration> 

क्रिया विधि AcceptVerbs("PATCH") विशेषता के साथ सजाया गया है।

सेवा पैच क्रिया के साथ ठीक से काम करती है। यूआरएल सही क्रिया विधि पर जाता है और उचित डेटा देता है।

अजीब मुद्दा यह है कि यदि मैं एक अलग यूआरएल का उपयोग करता हूं जो पैच क्रिया का उपयोग करके किसी भी मार्ग से मेल नहीं खाता है, तो आईआईएस "404 नहीं मिला" के बजाय "200 ठीक" लौटाता है। सभी मानक क्रियाएं (प्राप्त करें, पुट करें, हटाएं, पोस्ट करें, सिर, विकल्प) इस समस्या में नहीं है।

क्या मुझे पैच क्रिया के लिए अतिरिक्त हैंडलर पंजीकृत करने की आवश्यकता है या क्या यह एक रूटिंग समस्या है? किसी भी मदद की सराहना की है।

उत्तर

6

वास्तव में पैच क्रिया के साथ किए गए HTTP अनुरोधों को संसाधित करने के लिए कस्टम हैंडलर की आवश्यकता नहीं है; इसके बजाय, आप AcceptVerbs("PATCH") विशेषता के साथ अपने कार्यों को सजाने के लिए रख सकते हैं, जबकि यह जांचते हुए कि ASP.NET ISAPI को किसी भी क्रिया (यह डिफ़ॉल्ट है) को संभालने के लिए कॉन्फ़िगर किया गया है, जिसमें पैच भी शामिल है।

आप संभाल, कस्टम मॉड्यूल का उपयोग कर जिस तरह से अनुरोध के इस प्रकार के लिए है हैं, तो कृपया ध्यान रखें (यह भी शामिल होते हैं कि यह हैंडलर ही प्रत्येक अनुरोध के लिए स्थिति कोड स्थापित करने के लिए की जिम्मेदारी है मैपिंग के अनुसार, संभाल लेना चाहिए, लेकिन यह किसी भी कारण से नहीं हो सकता है) और शायद यह खत्म होने पर सही मूल्य निर्धारित नहीं कर रहा है।

+0

उपरोक्त कॉन्फ़िगरेशन किसी भी कस्टम हैंडलर का उपयोग नहीं करता है। "प्रोटोकॉलस्पोर्ट मॉड्यूल" मानक एएसपी.नेट हैंडलर है जो मानक क्रियाओं जैसे जीईटी, पोस्ट इत्यादि के साथ पंजीकृत है –

+0

सर्वर पर पैच क्रिया प्रोटोकॉलस्पोर्ट मॉड्यूल घोषणा के बिना ठीक से काम करती है। मैं यह जवाब स्वीकार करूंगा। मेरे वर्कस्टेशन पर शायद कुछ गलत कॉन्फ़िगर किया गया है। –