Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
.NET Framework
Passaggio parametri List<> nel remoting
giovedì 15 ottobre 2009 - 17.11
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
interdata
Profilo
| Newbie
11
messaggi | Data Invio:
gio 15 ott 2009 - 17:11
Salve,
ho il seguente problema. In un'architettura client - server col remoting ho problemi con l'utilizzo di parametri di tipo List<T> (List(Of T) in VB).
Il client effettua una chiamata remota ad una funzione sul server con esito positivo. A questo punto, la funzione del server invoca una funzione definita in una libreria esterna.
Quest'ultima invocazione non ha esito positivo ed ottengo il seguente messaggio di errore:
"This remoting proxy has no channel sink which means either the server has no registered server channels that are listening, or this application has no suitable client channel to talk to the server."
Dopo vari tentativi ho capito che il problema risiede nel parametro di tipo List<T>. Infatti, se invoco una funzione della stessa dll, che non ha parametri, la chiamata ha effetto positivo.
Tengo a precisare che non sono incappato ancora in un problema di serializzazione/deserializzazione dell'oggetto da server a client e viceversa, bensì nella chiamata di una funzione la cui dll è in esecuzione sul server stesso. Non riesco a capire come all'interno della stessa macchina, non riesca ad effettuare questa chiamata a funzione.
Riporto un estratto del codice del server scritto in C#:
if (tblMgr.saveArchive(a.ArchivesId, a.Fields) == TableManagerError.NoError)
return ArchiveResult.ArchiveSaved;
else
return ArchiveResult.ArchiveNotSaved;
La funzione incriminata è tblMgr.saveArchive ed è scritta VB, il parametro di tipo List<Field> è a.Fields.
Graditi suggerimenti.
freeteo
Profilo
| Guru
6.542
messaggi | Data Invio:
dom 25 ott 2009 - 18:13
Ciao,
a quanto ne so io i metodi di un webservice non conoscono i tipi "Generics" ma lavorano a cose più "standard" che sono Array.
Hai provato a cambiare la firma del metodo, usando un Array di oggetti, e poi farti una List<T> su quell'array (glielo passi dal costrutture)?
Così facendo il codice .net lato servizio è cmq lo stesso, solo che la serializzazione è in Array quindi standard e conforme alle specifiche dei webservice...
Ciao.
Matteo Raumer
[MCAD, MVP Visual C#]
http://blogs.dotnethell.it/freeteo
Torna su
Stanze Forum
Elenco Threads
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 !