2012-11-07 10 views
6

मैं बहुत उत्कृष्ट सर्विसिकैकैक libaries का उपयोग कर रहा हूं और मेरे सर्विसस्टैक WSDL - Soap11 में VS2010 के भीतर से ASP.NET वेब-सेवा संदर्भ (पुरानी शैली डब्लूसीएफ नहीं) उत्पन्न करने का प्रयास कर रहा हूं। अच्छी तरह से सेवा डब्ल्यूएसडीएल लपेटने के लिए।सर्विसस्टैक - एएसपी.NET webservice- संदर्भ समस्या

डीटीओ ऐपहोस्ट/सेवाओं से एक अलग असेंबली/नेमस्पेस (My.WS.DTO) में हैं और अनुरोध/प्रतिक्रिया नामकरण सम्मेलन का पालन कर रहे हैं .. जब मैं विजुअल स्टूडियो के माध्यम से संदर्भ उत्पन्न करने का प्रयास करता हूं तो मुझे निम्न मिलता है वीएस में त्रुटि

कस्टम टूल त्रुटि: वेब सेवा/स्कीमा आयात करने में असमर्थ। नामस्थान 'http://schemas.servicestack.net/types' से बाध्यकारी 'BasicHttpBinding_ISyncReply' आयात करने में असमर्थ। ऑपरेशन 'GetMyDetails' आयात करने में असमर्थ। तत्व 'http://schemas.servicestack.net/types:GetMyDetails' गायब है।

नोट: GetMyDetails सूची में दिखाई देने वाली पहली सेवा है - इसलिए मुझे विश्वास नहीं है कि यह समस्या है।

मैंने EndpointHostConfig.Instance.WsdlServiceNamespace = "My.WS.DTO" का उपयोग करके AppHost फ़ाइल में असेंबली नेमस्पेस जोड़ने का प्रयास किया है; और यह सिर्फ उसी पीढ़ी की त्रुटि (ऊपर के रूप में) का कारण बनता है लेकिन 'http://schemas.servicestack.net/types' के बजाय 'My.WS.DTO' के साथ।

मुझे लगता है कि यह शायद किसी प्रकार की संदर्भ समस्या है लेकिन मैं जो भी गलत कर रहा हूं उसके बारे में कोई मार्गदर्शन अच्छा होगा। चियर्स

+0

क्या आप कुछ और विवरण प्रदान कर सकते हैं? और यह भी जांचें कि WebApi nuget पैकेज के रूप में नहीं है या नहीं। – kunjee

उत्तर

3

अगर यह अभी भी आप के लिए एक मुद्दा है, लेकिन मैं एक ऐसी ही समस्या थी और पाया कि मैं SOAP Support wiki page पर वर्णित है [DataContract] और [DataMember] विशेषताओं के साथ मेरी DTOs में से एक सजाया नहीं किया था, मैं नहीं जानता। एक बार जब आप इसे अपने डीटीओ में जोड़ देते हैं तो इसे डब्लूएसडीएल के प्रकार खंड में घोषित किया जाएगा।

1

अपने डीटीओ के शीर्ष पर [DataContract (Namespace = "YOUR NAMESPACE")] का उपयोग करने पर एक नज़र डालें। इस प्रकार मेरी वस्तुओं का संदर्भ दिया जाता है।

[DataContract(Namespace = "My.WS.DTO")] 
public class Account{ 
} 

मैं इसे अपने सेवा मॉडल में भी उपयोग करता हूं। [System.ServiceModel.ServiceContract()] और [System.ServiceModel.OperationContract()]

[System.ServiceModel.ServiceContract()] 
public class SendGetAccountResponseService : IService<SendGetAccountNotification> 
{ 
#region IService implementation 
[System.ServiceModel.OperationContract()] 
public object Execute (SendGetAccountNotification request) 
{ 
    Console.WriteLine ("Reached"); 
    return null; 
} 
#endregion 
} 

आशा यह आपकी समस्या का हल में मदद करता है /।

1

मुझे पता है कि यह एक पुराना सवाल है, लेकिन मुझे तीसरी पार्टी के लिए एसओएपी समर्थन जोड़ना पड़ा जो हाल ही में मेरे सर्विसस्टैक कार्यान्वयन के लिए आरईएसटी का समर्थन करने से इनकार कर दिया गया था, इसलिए यह अभी भी अन्य लोगों के लिए प्रासंगिक हो सकता है।

मैं एक ही मुद्दा आप कर रहे थे था:

Unable to import binding 'BasicHttpBinding_ISyncReply'...

और तरह mickfold पहले से जवाब मैं अपने वर्ग परिभाषाएँ और उनके गुणों को [DataContract] और [DataMember] जोड़ने की जरूरत है।

लेकिन मैं यह भी मेरी AssemblyInfo.cs फ़ाइल के लिए निम्न जोड़ने के लिए इससे पहले कि त्रुटि मेरे लिए दूर चला गया:

[assembly: ContractNamespace("http://schemas.servicestack.net/types", ClrNamespace = "My Type Namespace")] 

मुझे लगता है कि आप हर एक नाम स्थान आपके पास जहां के लिए इन पंक्तियों में से एक की आवश्यकता होगी एक प्रकार घोषित किया गया है, जो उपरोक्त मूल प्रश्न के आधार पर My.WS.DTO होगा।

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