ASP.NET Client um Web Service zu nutzen

der jaf

Grünschnabel
hallo,

ich habe einen web service in PHP geschrieben und dazu bisher Clients in PHP und JSP erstellt, die beide wunderbar funktionieren!
jetzt wollte ich noch einen .NET Client erstellen - habe aber bisher noch nie was mit .NET gemacht;
nach dem lesen einiger referenzen im internet, habe ich die nötige entwicklungsumgebung istallerit (.NET Framework 1.1, SDK, IIS und Web Matrix);
bei allen beispielen die ich dazu gefunden habe, war das prozedere ähnlich:

über das WSDL des Web Service wiird der Proxy für den .NET Client erzeugt und dann halt noch angepasst;

wenn ich jetzt aber über Web Matrix (oder WSDL.exe) versuche über das WSDl meines Web Services den Proxy zu erzeugen bekomme ihc folgenden Fehler:

unable to import Binding 'calendarBinding from namespace 'urn:calendar'.

selber fehler auch bei WSDL.exe

mein WSDL erzeuge ich in PHP über Disco und es schaut folgendermaßen aus:

Code:
 <definitions name="calendar" targetNamespace="urn:calendar">
 -
 	<types>
 -
 	<schema targetNamespace="urn:calendar">
 -
 	<complexType name="ArrayOfStrings">
 -
 	<complexContent>
 -
 	<restriction base="SOAP-ENC:Array">
 <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="xsd:string[]"/>
 </restriction>
 </complexContent>
 </complexType>
 </schema>
 </types>
 -
 	<portType name="calendarPort">
 -
 	<operation name="jetzt">
 <input message="tns:"/>
 <output message="tns:jetztResponse"/>
 </operation>
 -
 	<operation name="getEventIDs">
 <input message="tns:getEventIDsRequest"/>
 <output message="tns:getEventIDsResponse"/>
 </operation>
 -
 	<operation name="getEventTitles">
 <input message="tns:getEventTitlesRequest"/>
 <output message="tns:getEventTitlesResponse"/>
 </operation>
 -
 	<operation name="getEventDetails">
 <input message="tns:getEventDetailsRequest"/>
 <output message="tns:getEventDetailsResponse"/>
 </operation>
 </portType>
 -
 	<binding name="calendarBinding" type="tns:calendarPort">
 <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
 -
 	<operation name="jetzt">
 <soap:operation soapAction="urn:soapservice#Service#jetzt"/>
 -
 	<input>
 <soap:body use="encoded" namespace="urn:soapservice" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
 </input>
 -
 	<output>
 <soap:body use="encoded" namespace="urn:soapservice" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
 </output>
 </operation>
 -
 	<operation name="getEventIDs">
 <soap:operation soapAction="urn:soapservice#Service#getEventIDs"/>
 -
 	<input>
 <soap:body use="encoded" namespace="urn:soapservice" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
 </input>
 -
 	<output>
 <soap:body use="encoded" namespace="urn:soapservice" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
 </output>
 </operation>
 -
 	<operation name="getEventTitles">
 <soap:operation soapAction="urn:soapservice#Service#getEventTitles"/>
 -
 	<input>
 <soap:body use="encoded" namespace="urn:soapservice" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
 </input>
 -
 	<output>
 <soap:body use="encoded" namespace="urn:soapservice" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
 </output>
 </operation>
 -
 	<operation name="getEventDetails">
 <soap:operation soapAction="urn:soapservice#Service#getEventDetails"/>
 -
 	<input>
 <soap:body use="encoded" namespace="urn:soapservice" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
 </input>
 -
 	<output>
 <soap:body use="encoded" namespace="urn:soapservice" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
 </output>
 </operation>
 </binding>
 -
 	<service name="calendarService">
 <documentation/>
 -
 	<port name="calendarPort" binding="tns:calendarBinding">
 <soap:address location="http://localhost/forum/_webservice/webservice.php"/>
 </port>
 </service>
 -
 	<message name="jetztResponse">
 <part name="jetzt" type="xsd:date"/>
 </message>
 -
 	<message name="getEventIDsRequest">
 <part name="date" type="xsd:string"/>
 </message>
 -
 	<message name="getEventIDsResponse">
 <part name="eventIDs" type="ns5:ArrayOfStrings"/>
 </message>
 -
 	<message name="getEventTitlesRequest">
 <part name="date" type="xsd:string"/>
 </message>
 -
 	<message name="getEventTitlesResponse">
 <part name="eventTitles" type="ns5:ArrayOfStrings"/>
 </message>
 -
 	<message name="getEventDetailsRequest">
 <part name="eventID" type="xsd:string"/>
 <part name="xml" type="xsd:string"/>
 </message>
 -
 	<message name="getEventDetailsResponse">
 <part name="eventDetails" type="ns5:ArrayOfStrings"/>
 </message>
 </definitions>




kann mir einer helfen?
 
Hi,

so mal eben auf die Schnelle, sieht das so aus, als ob Du bei der Deklaration nicht wirklich die Angaben der Namespaces durchgehalten hättest. Insofern hat er ein Problem alle zugehörigen Komponenten zu finden und zu binden! Ich würde mir an Deiner Stelle nochmal die Deklaration ansehen und eventuell noch den namespace in den einzelnen Komponenten hinzufügen!

Gruß

Alex
 
hmmm ich kann aber irgendwie keinen Fehler feststellen...das WSDL wird ja auch automatisch generiert. Die namensräume sind eigentlich alle ok und werden richtig referenziert...dennoch scheitert es

ich hab nochmal übersichtlich die wichtigsten Stellen des WSDls...vieleicht seht ihr ja wo der wurm steckt?

HTML:
  <definitions targetNamespace="urn:EventCalendarService"
 				 xmlns:tns="urn:EventCalendarService"
  				 ... >
     <portType name="EventCalendarService">...</portType>
     <binding name="EventCalendarServiceBinding" type="tns:EventCalendarServicePort">...</binding>
     <service name="EventCalendarServicePort" binding="tns:EventCalendarServiceBinding">
 	 <service:address location="http://localhost/forum/_webservice/webservice.php"/>...</service>

Fehlermeldung beim Proxygenerierungs-Versuch:
Unable to import binding 'EventCalendarServiceBinding' from namespace 'urn:EventCalendarService'

aber warum?
:confused:
 
Zuletzt bearbeitet:
ich hab zum Vergleich mal ein funktionierendes WSDL Dokument im netz gefunden

http://ws.strikeiron.com/DataEnhancement?WSDL

da kann man die betreffenden stellen vergleichen...aber bin da jetzt auch noch nicht sehr viel weiter gekommen


EDIT:
HTML:
xmlns:tns="urn:EventCalendarService"

dieser Namespace im <definiton>-Element scheint er nicht zu finden oder nix mit anfangen zu können...

EDIT2:
http://www.brics.dk/~amoeller/WWW/webservices/wsdlexample.html

das beispiel auf der Seite führt zu dem selben Fehler den ich bekomme!
falls es also einer schafft aus dem kleine WSDL ein Proxy in .NET zu generieren, wäre das auch die Lösung zu meinem Problem
 
Zuletzt bearbeitet:
Zurück