36 messaggi dal 01 giugno 2007
Ciao a tutti, visto il titolo criptico della domanda cerco di spiegarmi meglio.

Mi sono stati forniti una seri di file.wsdl con i quali ho creato il file client.cs tramite la seguente procedura:
"wsdl /out:client.cs /sharetypes file:\\C:\file1.wsdl file:\\C:\file2.wsdl file:\\C:\file3.wsdl" ecc....


Ho importato il file client.cs nel mio wcf che chiamerò wcf1 e scritto del codice per richiamare un metodo contenuto in uno di questi wsdl.

Infine ho testato wcf1 e verificato che la chiamata al metodo del web service funziona correttamente dandomi indietro una classe che chiamerò "responseClass" con n risultati all'interno.



A questo punto ho dovuto creare un'altro wcf (Wcf2) che potesse chiamare a sua volta Wcf1, e qui sono nati i problemi.
All'interno del progetto Wcf2 ho aggiunto come web reference wcf1, e ho scritto del codice per richiamare il metodo già testato prima, qualcosa del tipo "wcf1.responseClass myresClass = Wcf1.metodo()", ma la classe myresClass risulta vuota anche se wcf continua a funzionare correttamente.

praticamente wcf2 chiama wcf1 |||
wcf1 chiama un servizio e ottiene un'entità valorizzata in ritorno |||
wcf1 ritorna la stessa entità a wcf2 |||
wcf2 ottiene un'entità vuota |||


Spero riusciate ad aiutarmi che non so più cosa inventarmi
Grazie mille
Mi sa che stai facendo confusione tra client e server. Innanzitutto usando il tool wsdl.exe usi i servizi vecchio stile e non wcf. Invece di "add web reference" dovresti usare "add service reference" o svcutil.exe.
In ogni caso crei dei wrapper che consumano i due servizi che da quanto capisco non hai implementato te, perciò non capisco come fai da wcf2 (che dovrebbe essere la parte server) a chiamare wcf1.
Tu sei il client che può chiamare o wcf1 o wcf2.

Ciao

Il mio blog
Homepage
36 messaggi dal 01 giugno 2007
probabilmente mi sono spiegato male, provo a riformulare la domanda.
innanzitutto usando il tool wsdl.exe usi i servizi vecchio stile e non wcf

L'utilizzo del tool wsdl credo si imposto dal fatto che devo usare degli xsd condivisi tra molti servizi, e non ho trovato nulla che lo facesse se non questo tool, con il parametro sharedTypes, non credo che si tratti ne di wcf nè di asmx, visto che sono servizi sviluppati in java.
Invece di "add web reference" dovresti usare "add service reference" o svcutil.exe

per i servizi in java di cui sopra non utilizzo nulla di tutto questo, ma utilizzo il client che genero con wsdl.exe, e ogni volta che istanzio uno specifico ervizio gli dò a mano l'indirizzo
n ogni caso crei dei wrapper che consumano i due servizi che da quanto capisco non hai implementato te, perciò non capisco come fai da wcf2 (che dovrebbe essere la parte server) a chiamare wcf1.
Tu sei il client che può chiamare o wcf1 o wcf2.

Wcf1 e Wcf2 sono 2 servizi che in realtà ho creato io. ho bisogno di questa configurazione per motivi di sicurezza, vsto che il client non può chiamare direttamente wcf1, chiamerà wcf2 che comunicherà con wcf1, che alla fine sarà il client del servizio istanziato con la classe del wsdl.exe


Tutto questo mezzo casino è nato dall'esigenza di avere i tipi dei servizi creati in java condivisi. quindi se io ho una classe di tipo persona questa classe deve valermi per il servizio 1 quanto er il servizio 2 o 3. questo sono riuscito a farlo solo con il tool wsdl.exe.

altrimente se aggiungo i 3 servizi java tramite add service reference avrò
servicereference1.persona servicereference2.persona e servicereference3.persona

spero di essere stato più chiaro

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.