मैंने अपने समाधान में एक WCF सेवा पुस्तकालय परियोजना बनाई, और इसके लिए सेवा संदर्भ हैं। मैं एक क्लास लाइब्रेरी से सेवाओं का उपयोग करता हूं, इसलिए मेरे पास क्लास लाइब्रेरी के अलावा मेरे WPF एप्लिकेशन प्रोजेक्ट से संदर्भ हैं। सेवाओं को सीधे आगे सेट किया जाता है - केवल async सेवा कार्यों को प्राप्त करने के लिए बदल दिया जाता है।
सब कुछ ठीक काम कर रहा था - जब तक मैं अपने सेवा संदर्भों को अपडेट नहीं करना चाहता था। यह विफल रहा, इसलिए मैं अंततः पीछे हट गया और पीछे हट गया, लेकिन यह तब भी विफल रहा! इसलिए - इसमें कोई भी बदलाव किए बिना सेवा संदर्भों को अपडेट करना विफल रहता है। क्यों?!
मुझे जो त्रुटि मिलती है वह यह है:
Custom tool error: Failed to generate code for the service reference
'MyServiceReference'. Please check other error and warning messages for details.
चेतावनी अधिक जानकारी देती है:
Custom tool warning: Cannot import wsdl:portType
Detail: An exception was thrown while running a WSDL import extension:
System.ServiceModel.Description.DataContractSerializerMessageContractImporter
Error: List of referenced types contains more than one type with data contract name 'Patient' in
namespace 'http://schemas.datacontract.org/2004/07/MyApp.Model'. Need to exclude all but one of the
following types. Only matching types can be valid references:
"MyApp.Dashboard.MyServiceReference.Patient, Medski.Dashboard, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" (matching)
"MyApp.Model.Patient, MyApp.Model, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" (matching)
XPath to Error Source: //wsdl:definitions[@targetNamespace='http://tempuri.org/']/wsdl:portType[@name='ISomeService']
दो समान चेतावनी भी कह रहे हैं:
Custom tool warning: Cannot import wsdl:binding
Detail: There was an error importing a wsdl:portType that the wsdl:binding is dependent on.
XPath to wsdl:portType: //wsdl:definitions[@targetNamespace='http://tempuri.org/']/wsdl:portType[@name='ISomeService']
XPath to Error Source: //wsdl:definitions[@targetNamespace='http://tempuri.org/']/wsdl:binding[@name='WSHttpBinding_ISomeService']
और उसी के लिए:
Custom tool warning: Cannot import wsdl:port ..
मुझे यह सब भ्रमित लगता है .. मेरे पास क्लाइंट के डैशबोर्ड पर एक रोगी वर्ग नहीं है, सिवाय इसके जो मुझे सेवा संदर्भ के माध्यम से मिला है। तो इसका क्या अर्थ है? और यह अचानक क्यों दिखाई देता है? याद रखें: मैंने कुछ भी नहीं बदला!
अब, इसका समाधान यहां पाया गया था , लेकिन इसका कोई मतलब नहीं है। इसलिए; सेवा के लिए "कॉन्फ़िगर सेवा संदर्भ" मैं "संदर्भित असेंबली में पुन: उपयोग प्रकार" चेकबॉक्स अनचेक करें। पुनर्निर्माण अब यह सब समस्याओं के बिना ठीक काम करता है। लेकिन मैं वास्तव में क्या बदल गया? क्या यह मेरे आवेदन पर प्रभाव डालेगा? और इसे कब अनचेक करना चाहिए? मैं उन प्रकारों का पुन: उपयोग करना चाहता हूं जिन्हें मैंने DataContract पर सेट किया है, लेकिन अब और नहीं। क्या मैं अब भी इस जाँच के बिना उन तक पहुँच प्राप्त कर सकता हूँ?