2009-02-01 5 views
15

मैंने अभी एक विश्वसनीय डब्ल्यूसीएफ सेवा बनाने के दौरान देखा है कि WebInvoke विशेषता पर विधि पैरामीटर केस संवेदनशील (सीएपीएस आवश्यक) है।क्या विभिन्न वेब विधि प्रकारों (GET, PUT, POST, DELETE, HEAD) के लिए .NET ढांचे में कोई स्थिरांक हैं?

System.ServiceModel.ProtocolException:

तो,

[WebInvoke(Method = "Delete")] 

[WebInvoke(Method = "DELETE")] 

यह गलती एक ProtocolException पैदा कर रहा था के बराबर नहीं है दूरस्थ सर्वर एक अनपेक्षित प्रतिक्रिया मिली : (405) विधि अनुमत नहीं है।

मैं सोच रहा था कि .NET ढांचे में स्थिरांक का एक सेट है जिसे मुझे उपर्युक्त उदाहरण में "DELETE" के स्थान पर उपयोग किया जाना चाहिए। मैं निश्चित रूप से स्थिरांक के अपने सेट को परिभाषित कर सकता हूं, लेकिन यदि ऐसा कुछ ऐसा लगता है जो शायद ढांचे में मौजूद है और मैं इसे अभी याद कर रहा हूं।

+0

मेरी इच्छा है कि मैं सिल्वरलाइट अपडेट के लिए एक और अप-वोट दे सकता हूं (मैं सिल्वरलाइट 2 के लिए लाइब्रेरी बनाए रखता हूं); अपना खुद का रोल करें, मुझे लगता है ... –

उत्तर

12

थोड़ा अप्रत्यक्ष, लेकिन देखते हैं System.Net.WebRequestMethods.Http स्थिरांक:

public const string Connect = "CONNECT"; 
public const string Get = "GET"; 
public const string Head = "HEAD"; 
public const string MkCol = "MKCOL"; 
public const string Post = "POST"; 
public const string Put = "PUT"; 

लेकिन कोई "हटाएँ" - आप अपने खुद के बनाने का सुझाव देते हैं ...

Annoyingly, वहाँ है एक System.Web.HttpVerb, लेकिन यह internal है , इसलिए उपयोग करने योग्य नहीं - और यह एक enum है, इसलिए उस विशेषता में नाम का उपयोग करने के लिए आपको कुछ हैकर की आवश्यकता होगी।

+1

अजीब बात है कि उन्होंने सिस्टम में कुछ नहीं रखा है। ServiceModel.Web नेमस्पेस। –

+1

@ spoon16: इस उत्तर को पढ़ने वाले किसी भी व्यक्ति के लिए –

+1

FYI सहमत है, ये स्थिरांक सिल्वरलाइट –

संबंधित मुद्दे