c# सेवा संदर्भ लोड नहीं हो रहा है: लक्ष्य नामस्थान के साथ स्कीमा नहीं मिल सका



web-services soap (1)

मैं अपनी प्रोजेक्ट में सेवा संदर्भ जोड़ने का प्रयास कर रहा हूं और मुझे लगातार यही त्रुटि मिल रही है

मैंने सोपान यूआई के साथ नकली सेवा बनाई है जो ठीक लगता है, फिर मैं इस नकली सेवा के लिए सेवा संदर्भ जोड़ने का प्रयास करता हूं और त्रुटि दिखाई देती है:

Warning 14  Custom tool warning: Cannot import wsdl:portType
Detail: An exception was thrown while running a WSDL import extension:     System.ServiceModel.Description.DataContractSerializerMessageContractImporter
Error: Schema with target namespace 'urn:oasis:names:tc:dss:1.0:core:schema' could not be found.
XPath to Error Source: //wsdl:definitions[@targetNamespace='http://tempuri.org/esign']/wsdl:portType[@name='EsignServiceSoap11PortType']    

Wsdl पर आयात जहां नाम स्थान के साथ स्कीमा: ओएसिस: नाम: टीसी: dss: 1.0: कोर: स्कीमा लोड किया जा रहा है:

<wsdl:types>

      <schema xmlns="urn:oasis:names:tc:dss:1.0:core:schema">

           <import namespace="urn:oasis:names:tc:dss:1.0:core:schema" schemaLocation="oasis-dss-core-schema-v1.0-os.xsd"/>

      </schema>

    .....
</wsdl:types>

मैंने पहले से ही स्कीमा स्थान को सीधे वाईएसडीएल की तुलना में उसी फ़ोल्डर में फ़ाइल में लिंक करने का प्रयास किया है, जहां यूआरएल एक निजी सर्वर पर प्रकाशित होता है और एक सार्वजनिक यूरी जहां यह भी प्रकाशित होता है।

मुझे हमेशा एक ही त्रुटि मिलती है और मुझे लगता है कि शायद मैं इस समस्या के स्रोत के साथ गलत हूँ।

कोई अंतर्दृष्टि बहुत सराहना की जाएगी

अद्यतन: मैं कलश इंजेक्शन है: ओएसिस: नाम: टीसी: dss: 1.0: कोर: स्कीमा मेरी wsdl फ़ाइल में पूर्ण परिभाषा, इसे आयात करने की कोशिश के बजाय। जब मैं ऐसा करता हूं, SOAP UI अभी भी ठीक से मजाकिया सेवा बनाता है, हालांकि, जब मैं एक सेवा संदर्भ जोड़ने का प्रयास करता हूं, तो यह त्रुटि सेवा की खोज के दौरान फेंक जाती है:

The document was understood, but it could not be processed.
  - The WSDL document contains links that could not be resolved.
  - DTD is prohibited in this XML document.
Metadata contains a reference that cannot be resolved:    'http://elite8100-3:8088/mockEsignServiceSoap11Binding?WSDL'.
The content type text/html; charset=iso-8859-1 of the response message does not match the content type of the binding (application/soap+xml; charset=utf-8). If using a custom encoder, be sure that the IsContentTypeSupported method is implemented properly. The first 455 bytes of the response were: '<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
  <soap:Body>
    <soap:Fault>
      <soap:Code>
    <soap:Value>Server</soap:Value>
  </soap:Code>
  <soap:Reason>
    <!--1 or more repetitions:-->
    <soap:Text xml:lang="en">Missing operation for soapAction [null] and body element [null] with SOAP Version [SOAP 1.2]</soap:Text>
  </soap:Reason>
</soap:Fault>
  </soap:Body>
</soap:Envelope>'.
The remote server returned an error: (500) Internal Server Error.
If the service is defined in the current solution, try building the solution and adding the service reference again.

EDIT2: मैंने प्रॉस्पेक्ट बनाने की कोशिश करते समय http ट्रैफ़िक को जांचने के लिए फ़िडलर का उपयोग किया है, जैसा कि उत्तर में सुझाया गया है। सृष्टि के दौरान, 500 से अधिक आंतरिक सर्वर त्रुटि मॉक एसआईयूआर यूआर तक पहुंचने की कोशिश करते समय, सर्वर से प्रतिक्रिया "सोप एक्शन [रिक्त] और शरीर के तत्व [नल] SOAP संस्करण [SOAP 1.2] के साथ" लापता ऑपरेशन था।

यह वर्तमान में, डब्लूएसडीएल मैं मॉकसिव्यली बनाने के लिए उपयोग कर रहा हूं।

 <wsdl:types>

      <schema xmlns="http://www.w3.org/2001/XMLSchema">

           <import namespace="http://www.w3.org/2001/XMLSchema" schemaLocation="http://aplicaciones.serpasa.es/CONTROLAMBIENTAL/oasis-dss-core-schema-v1.0-os.xsd"/>

      </schema>

      <schema xmlns="http://princast.es/esign/2.0/esign.xsd">

           <import namespace="http://princast.es/esign/2.0/esign.xsd" schemaLocation="http://aplicaciones.serpasa.es/CONTROLAMBIENTAL/esign.xsd"/>

      </schema>

 </wsdl:types>


 <wsdl:message name="SignRequestMessage">

      <wsdl:part element="dss:SignRequest" name="payload"/>

 </wsdl:message>

 <wsdl:message name="SignResponseMessage">

      <wsdl:part element="dss:SignResponse" name="payload"/>

 </wsdl:message>


 <wsdl:message name="VerifyRequestMessage">

      <wsdl:part element="dss:VerifyRequest" name="payload"/>

 </wsdl:message>

 <wsdl:message name="VerifyResponseMessage">

      <wsdl:part element="dss:VerifyResponse" name="payload"/>

 </wsdl:message>


 <wsdl:message name="GetSignInfoFromDocumentRequestMessage">

      <wsdl:part element="esign:SignInfoRequest" name="payload"/>

 </wsdl:message>

 <wsdl:message name="GetSignInfoFromDocumentResponseMessage">

      <wsdl:part element="esign:SignInfo" name="payload"/>

 </wsdl:message>


 <wsdl:message name="GetSignConfigurationRequestMessage">

      <wsdl:part element="esign:SignConfigurationRequest" name="payload"/>

 </wsdl:message>

 <wsdl:message name="GetSignConfigurationResponseMessage">

      <wsdl:part element="esign:SupportedSignConfiguration" name="payload"/>

 </wsdl:message>


<!-- Port -->


 <wsdl:portType name="EsignServiceSoap11PortType">


      <wsdl:operation name="sign">

           <wsdl:input message="impl:SignRequestMessage" name="signRequest"/>

           <wsdl:output message="impl:SignResponseMessage" name="signResponse"/>

      </wsdl:operation>


      <wsdl:operation name="verify">

           <wsdl:input message="impl:VerifyRequestMessage" name="verifyRequest"/>

           <wsdl:output message="impl:VerifyResponseMessage" name="verifyResponse"/>

      </wsdl:operation>


      <wsdl:operation name="getSignConfiguration">

           <wsdl:input message="impl:GetSignConfigurationRequestMessage" name="getSignConfigurationRequest"/>

           <wsdl:output message="impl:GetSignConfigurationResponseMessage" name="getSignConfigurationResponse"/>

      </wsdl:operation>


      <wsdl:operation name="getSignInfoFromDocument">

           <wsdl:input message="impl:GetSignInfoFromDocumentRequestMessage" name="getSignInfoFromDocumentRequest"/>

           <wsdl:output message="impl:GetSignInfoFromDocumentResponseMessage" name="getSignInfoFromDocumentResponse"/>

      </wsdl:operation>


 </wsdl:portType>


<!-- Binding -->

 <wsdl:binding name="EsignServiceSoap11Binding" type="impl:EsignServiceSoap11PortType">


      <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>


      <wsdl:operation name="sign">

           <wsdl:documentation>

            Realiza una firma digital delegada sobre un
            documento segun el estandard OASIS Digital Signature Service (DSS)
           </wsdl:documentation>


           <wsdlsoap:operation soapAction="urn:sign"/>

           <wsdl:input name="signRequest">

                <wsdlsoap:body use="literal"/>

           </wsdl:input>

           <wsdl:output name="signResponse">

                <wsdlsoap:body use="literal"/>

           </wsdl:output>

      </wsdl:operation>


      <wsdl:operation name="verify">

           <wsdl:documentation>

            Verifica una firma digital OASIS Digital
            Signature Service (DSS)
           </wsdl:documentation>


           <wsdlsoap:operation soapAction="urn:verify"/>

           <wsdl:input name="verifyRequest">

                <wsdlsoap:body use="literal"/>

           </wsdl:input>

           <wsdl:output name="verifyResponse">

                <wsdlsoap:body use="literal"/>

           </wsdl:output>

      </wsdl:operation>


      <wsdl:operation name="getSignConfiguration">

           <wsdl:documentation>

            Obtiene los certificados con los que una
            aplicacion en el MC de Firma Digital puede realizar
            una firma
           </wsdl:documentation>


           <wsdlsoap:operation soapAction="urn:getSignConfiguration"/>

           <wsdl:input name="getSignConfigurationRequest">

                <wsdlsoap:body use="literal"/>

           </wsdl:input>

           <wsdl:output name="getSignConfigurationResponse">

                <wsdlsoap:body use="literal"/>

           </wsdl:output>

      </wsdl:operation>


      <wsdl:operation name="getSignInfoFromDocument">

           <wsdl:documentation>

            Obtiene informacion de un fichero de firma
           </wsdl:documentation>


           <wsdlsoap:operation soapAction="urn:getSignInfoFromDocument"/>

           <wsdl:input name="getSignInfoFromDocumentRequest">

                <wsdlsoap:body use="literal"/>

           </wsdl:input>

           <wsdl:output name="getSignInfoFromDocumentResponse">

                <wsdlsoap:body use="literal"/>

           </wsdl:output>

      </wsdl:operation>


 </wsdl:binding>


 <wsdl:service name="EsignService">


      <wsdl:documentation>

        Servicio web de firma digital 
      </wsdl:documentation>


      <wsdl:port binding="impl:EsignServiceSoap11Binding" name="EsignServiceSoap11Port">


           <wsdlsoap:address location="http://someexternalsite.com"/>


      </wsdl:port>


 </wsdl:service>

मैंने प्रत्येक एकल .xsd को डाउनलोड किया है और उन्हें एक सार्वजनिक सर्वर पर डाउनलोड किया है, मैंने भी स्कीमा स्थान बदल दिया है, ताकि वे इस सार्वजनिक सर्वर पर पते को इंगित कर सकें, हालांकि, समस्या WSDL संरचना से संबंधित है।


आपके अपडेट से पहले मुख्य मुद्दा होना चाहिए कि आपका वाक्यविन्यास गलत है जहां आप कहते हैं <schema xmlns="urn:oasis:names:tc:dss:1.0:core:schema"> उपकरण <schema xmlns="http://www.w3.org/2001/XMLSchema"> अपेक्षा कर रहा है। बस एक बाहरी एक्सएसडी फ़ाइल आयात करने के लिए, ऊपर दिए गए डिफ़ॉल्ट एक्सएमएल नेमस्पेस को ठीक करना आपको बस आपकी ज़रूरत है

स्कीमा आयात / शामिल हैं काफी बरबाद हो सकते हैं; उन मामलों के लिए, जब कोई उन्हें डब्लूएसडीएल के अंदर डालता है, जैसा कि आपने सुझाव दिया है, गलतियां करना आसान है, क्योंकि यह सिर्फ कट-पेस्ट-पेस्ट का सरल मामला नहीं है। उदाहरण के लिए, कुछ औजारों में ऐसे संदर्भों को संभालने में समस्याएं हो सकती हैं जो मूल रूप से एक्सएसडी: शामिल; गिरगिट शामिल एक WSDL के भीतर reproduced नहीं किया जा सकता है; और आपके सभी एक्सएसडी: आयात स्कीमा लोकेशन विशेषता का उपयोग नहीं करना चाहिए।

टूटे संदर्भों से संबंधित समस्याओं का निवारण करने के लिए, मैं दृढ़ता से अनुशंसा करता है कि एक HTTP डीबगर, जैसे कि फिडलर यह आपको कम से कम बताएगा कि आप कौन-से संदर्भ साफ़ करने के लिए भूल गए, या आपके नकली समाधान ठीक से सेट नहीं किए गए किसी भी HTTP शीर्षलेख

यदि उपरोक्त अभी भी आपको कुछ प्रश्नों के साथ छोड़ देता है, तो आपको अपने संशोधित डब्ल्यूएसडीएल को पोस्ट करना होगा।





wsdl