Implementare WS usando un file wsdl comune

venerdì 09 gennaio 2009 - 16.16

paquito_ita Profilo | Senior Member

Ciao,

devo realizzare diversi web method descritti da un documento comune (usato da diversi partner).
In modo da agevolare l'omogeneità fra le varie aziende partner si è deciso di utilizzare un unico file wsdl (tutti usano una copia di questo) per cui anche io mi devo adeguare.

Vorrei sapere:

[1] Come posso fare in modo che anche il mio wsdl sia esattamente uguale a quello degli altri? Ho implementato i web method seguendo le signature riportate nelle specifiche, ma tuttavia il file wsdl risultante è piuttosto diverso.

[2] I partner usano un file wsdl e xsd. Come creo tale file xsd?

Grazie

alx_81 Profilo | Guru

>Ciao,
Ciao!

>[1] Come posso fare in modo che anche il mio wsdl sia esattamente
>uguale a quello degli altri? Ho implementato i web method seguendo
>le signature riportate nelle specifiche, ma tuttavia il file
>wsdl risultante è piuttosto diverso.
Basta prendere il wsdl che tutti usano e creare la classe proxy tramite il wsdl.exe:

Strumento del linguaggio di descrizione dei servizi Web (Wsdl.exe)
http://msdn.microsoft.com/it-it/library/7h3ystb6(VS.80).aspx

Segui questo post di Marco Rossi:
http://blogs.dotnethell.it/rossimarko/WebService-e-relative-WebReference__13538.aspx

>[2] I partner usano un file wsdl e xsd. Come creo tale file xsd?
Una volta che hai il tuo CS o VB (la classe proxy) puoi usare XSD.exe:

Strumento di definizione di schemi XML (Xsd.exe)
http://msdn.microsoft.com/it-it/library/x6c1kb0s(VS.80).aspx

>Grazie
di nulla!

--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

paquito_ita Profilo | Senior Member

Ciao,

ho cambiato approccio e ora uso direttamente la Web Reference (tramite "Add Web reference" di VS) al loro file wsdl mentre programmo la Business Logic del mio web service. In tal modo sono sicuro di usare le stesse classi/proprietà.

Tuttavia quando invoco (sulla piattaforma di uno dei partner) il mio web service ottengo il seguente errore:
Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

Dove potrebbe risiedere l'errore?
Sembra che in qualche modo non riesca ad accedere al WEB method invocato (nel caso specifico "GetFolderContent()").

Eppure i passi sono semplici:

[1] Creata web reference al web service partner (per es. PA1)
[2] Aggiunto tale riferimento nel codice: using PartnersWS.PA1;
[3] Implementato il metodo GetFolderContent() (sfruttando l'intellisense le varie classi descritte dal file wsdl sono presentate correttamente)

Grazie mille
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5