2011-01-07 13 views
7

मैंने वेब अनुप्रयोग परियोजना के अंदर एक साधारण डब्ल्यूसीएफ सेवा बनाई है।डब्ल्यूसीएफ: आउट पैरामीटर के साथ संचालन समर्थित नहीं हैं

[ServiceContract(Namespace = "http://my.domain.com/service")] 
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)] 
public class MyService 
{ 
    [OperationContract] 
    public string PublishProfile(out string enrollmentId, string registrationCode) 
    { 
     enrollmentId = null; 
     return "Not supported"; 
    } 

बनाया - सब कुछ सफलतापूर्वक संकलित किया गया है

उसके बाद मैं ब्राउज़र में सेवा खोलने की कोशिश की है, मैं निम्न त्रुटि मिल गया है:

Operation 'PublishProfile' in contract 'MyService' specifies an 'out' or 'ref' parameter. Operations with 'out' or 'ref' parameters are not supported

मैं उपयोग नहीं कर सकते ' बाहर 'पैरामीटर?

यहां क्या गलत है?

धन्यवाद

पीएस मैं वीएस -2008 एसपी 1 का उपयोग करता हूं, .NET 3.5

उत्तर

4

मेरे मामले में समस्या यह थी कि विजुअल स्टूडियो विज़ार्ड के साथ मेरे एएसपी.NET एप्लिकेशन में डिफॉल्ट सेवा कॉन्फ़िगरेशन एक सेवा प्रकार था। एंडपॉइंट बाध्यकारी "webHttp बाइंडिंग" था। जहां तक ​​मैं अब समझता हूं कि यह आरईएसटी सेवाओं के लिए बाध्यकारी है, और उनके पास आउट पैरामीटर के साथ काम करने की शारीरिक क्षमता नहीं है। उनके लिए पैरामीटर समर्थित नहीं है। और क्या मैं वास्तव में जरूरत है एक 'basicHttpBinding "बाहर मानकों के साथ काम करने के लिए अनुमति देता है कि था।

हर कोई जो मुझे यह पता लगाने की कि मदद करने के लिए बहुत धन्यवाद।

+0

यी, मैंने उल्लेख नहीं किया कि मैं आरईएसटी सेवा का उपयोग कर रहा हूं। लेकिन वास्तव में, मैं खुद को नहीं जानता था। – Budda

0

मुझे लगता है कि Out पैरामीटर आना चाहिए।

इसे इस तरह होना चाहिए:

public string PublishProfile(string registrationCode, out string enrollmentId) 

इसके अलावा, आप null को स्ट्रिंग सेट कर रहे हैं - क्यों string.Empty का उपयोग नहीं?

+0

केवल एक ठूंठ है ... लेकिन शायद मैं करने की जरूरत है अधिक जानें क्यों स्ट्रिंग। लक्षण बेहतर है – Budda

+0

'आउटेड' पैरामीटर के लिए बदलती स्थिति मदद नहीं करता है। – Budda

+0

http://codeasp.net/forums/asp-net-topics/getting-started-general-asp-net/117/ क्या-अंतर-अंतर-बीच-बनाम-स्ट्रिंग-खाली-बनाम-सी के पास 'string.empty' के बारे में एक अच्छा जवाब है। आपके मूल प्रश्न के बारे में, मैं वास्तव में स्टंप हूं कि आपको एक त्रुटि क्यों मिल रही है ... – VoodooChild

0
+0

तो? उन लिंक डीओ 'आउट' पैरामीटर का उपयोग करने का सुझाव देते हैं। मैंने इसे देखा, लेकिन वर्तमान मुद्दे से संबंधित कुछ भी नहीं देखते हैं। कृपया क्या आप स्पष्टीकरण दे सकते हैं? – Budda

2

जवाब मैंने पाया देखें था:।

"एक बाहर पैरामीटर का विचार है कि विधि अशक्त संदर्भ है कि आप में से गुजरती का दृष्टांत होगा एक वेब सेवा राज्यविहीन है, इसलिए एक ऑब्जेक्ट पर आपके पास जो हैंडल है जो पैरामीटर के रूप में webservice में जाता है वह वही नहीं होगा जो इसे webservice सर्वर पक्ष में बनाता है। इसकी प्रकृति पैरामीटर को रोकती है। "

Source

+0

मेरे अनुभव पर मैंने 'आउट' पैरामीटर (किसी अन्य प्रोजेक्ट में) का उपयोग किया है। किसी अन्य लिंक से आइडिया (स्कीलेक के उत्तर देखें) सुझाव देता है: आउटपुट पैरामीटर डब्ल्यूसीएफ में समझ में आता है, मैं पैरामीटर का उपयोग करने की सलाह देता हूं। – Budda

1

इस प्रयास करें:

... 
[OperationContract] 
[WebInvoke(BodyStyle = WebMessageBodyStyle.Wrapped)] 
public string PublishProfile(out string enrollmentId, string registrationCode) 
... 

मेरा मानना ​​है कि डिफ़ॉल्ट शरीर शैली (नंगे) केवल एक ही वापसी मान का समर्थन करता है।

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