Discussione:
WCF & Silverlight
(troppo vecchio per rispondere)
Mauro Servienti [MVP]
2009-04-20 14:29:52 UTC
Permalink
Ciao Gabriele,
Ho sviluppato una applicazione di prova con WCF e per testarla ho creato una
applicazione asp.net e una applicazione desktop. In entrambi in casi
funziona, mentre se richiamo il servizio da una applicazione silverlight mi
restituisce sempre l'errore : CommunicationException ..Errore durante il
tentativo di effettuare una richiesta all'URI ... . Si tratta di una
eccezione relativa alla sicurezza.
Nel progetto silverlight ho anche aggiunto il file clientaccesspolicy.xml,
ma nonostante tutti i tentativi non funziona.
vi ringrazio per qualsiasi suggerimento.
assicurati che la chiamata non sia cross-domain, se non erro,
giustamente, l'app silverlight può chiamare un servizio solo ed
esclusivamente dallo stesso url/uri da cui arriva lei

.m
--
Mauro Servienti
{C67C0157-5D98-4733-A75E-93CAEE4BADC8}
Microsoft MVP - Visual C# / MCP
http://mvp.support.microsoft.com
http://blogs.ugidotnet.org/topics
whynot [ at ] topics [ dot ] it
Corrado Cavalli [MVP]
2009-04-20 15:33:42 UTC
Permalink
Ho sviluppato una applicazione di prova con WCF e per testarla ho creato una
applicazione asp.net e una applicazione desktop. In entrambi in casi
funziona, mentre se richiamo il servizio da una applicazione silverlight mi
restituisce sempre l'errore : CommunicationException ..Errore durante il
tentativo di effettuare una richiesta all'URI ... . Si tratta di una
eccezione relativa alla sicurezza.
Nel progetto silverlight ho anche aggiunto il file clientaccesspolicy.xml,
ma nonostante tutti i tentativi non funziona.
vi ringrazio per qualsiasi suggerimento.
Assicurati che il file non venga incluso nello xap e sia nella root del
progetto web.
--
Corrado Cavalli [Microsoft .NET MVP-MCP]
UGIdotNET - http://www.ugidotnet.org
Weblog: http://blogs.ugidotnet.org/corrado/
Matteo Migliore
2009-04-21 10:14:51 UTC
Permalink
assicurati che la chiamata non sia cross-domain, se non erro, giustamente,
l'app silverlight può chiamare un servizio solo ed esclusivamente dallo
stesso url/uri da cui arriva lei
No Silverlight 2.0 supporta le chiamate cross-domain (per fortuna :-)):
http://silverlight.net/learn/learnvideo.aspx?video=47174

--
Matteo Migliore
http://blogs.ugidotnet.org/matteomigliore
Mauro Servienti [MVP]
2009-04-21 10:54:23 UTC
Permalink
Ciao Matteo,
Non è silverlight ma la presenza della policy (il file xml lato server,
serve anche per Flash) e secondo me: peccato ;-)

.m
--
Mauro Servienti
{C67C0157-5D98-4733-A75E-93CAEE4BADC8}
Microsoft MVP - Visual C# / MCP
http://mvp.support.microsoft.com
http://blogs.ugidotnet.org/topics
whynot [ at ] topics [ dot ] it
Mauro Servienti [MVP]
2009-04-21 11:33:30 UTC
Permalink
Ciao Matteo,
Post by Mauro Servienti [MVP]
Non è silverlight ma la presenza della policy (il file xml lato server,
serve anche per Flash) e secondo me: peccato ;-)
Come faresti a consumare servizi esterni al tuo server?
Dovresti wrapparli, ad esempio un servizio finanziario?
l'inghippo è che rischi di aprire falle di sicurezza notevoli, in
questo senso peccato.
http://silverlight.net/GetStarted/overview.aspx
lo so

.m
--
Mauro Servienti
{C67C0157-5D98-4733-A75E-93CAEE4BADC8}
Microsoft MVP - Visual C# / MCP
http://mvp.support.microsoft.com
http://blogs.ugidotnet.org/topics
whynot [ at ] topics [ dot ] it
Matteo Migliore
2009-04-21 11:30:36 UTC
Permalink
Post by Mauro Servienti [MVP]
Non è silverlight ma la presenza della policy (il file xml lato server,
serve anche per Flash) e secondo me: peccato ;-)
Come faresti a consumare servizi esterni al tuo server?

Dovresti wrapparli, ad esempio un servizio finanziario?

Comunque con Silverlight 1.0 non era possibile:
http://silverlight.net/GetStarted/overview.aspx

--
Matteo Migliore
http://blogs.ugidotnet.org/matteomigliore
Corrado Cavalli [MVP]
2009-04-21 20:16:35 UTC
Permalink
Post by Mauro Servienti [MVP]
Non è silverlight ma la presenza della policy (il file xml lato server,
serve anche per Flash) e secondo me: peccato ;-)
Come faresti a consumare servizi esterni al tuo server?
Dovresti wrapparli, ad esempio un servizio finanziario?
Esatto, il client Silverlight chiama un servizio WCF che sta nello
stesso site of origin il quale a sua volta chiama il servizio
finanziario.
--
Corrado Cavalli [Microsoft .NET MVP-MCP]
UGIdotNET - http://www.ugidotnet.org
Weblog: http://blogs.ugidotnet.org/corrado/
Gabriele
2009-04-22 17:29:01 UTC
Permalink
Post by Corrado Cavalli [MVP]
Esatto, il client Silverlight chiama un servizio WCF che sta nello
stesso site of origin il quale a sua volta chiama il servizio
finanziario.
Difatti e' stata l'unica soluzione per risolvere il problema.
Ma è un bug ? non capisco perchè in una pagina asp.net funziona
correttamente, quindi non è un problema di cross-domain.
Mauro Servienti [MVP]
2009-04-23 06:00:17 UTC
Permalink
Ciao Gabriele,
Post by Gabriele
Post by Corrado Cavalli [MVP]
Esatto, il client Silverlight chiama un servizio WCF che sta nello
stesso site of origin il quale a sua volta chiama il servizio
finanziario.
Difatti e' stata l'unica soluzione per risolvere il problema.
Ma è un bug ? non capisco perchè in una pagina asp.net funziona
correttamente, quindi non è un problema di cross-domain.
non è un bug è una questione di sicurezza, è il browser che impedisce a
priori la cosa, stessa storia per flash o per le chiamate ajax x-domain

.m
--
Mauro Servienti
{C67C0157-5D98-4733-A75E-93CAEE4BADC8}
Microsoft MVP - Visual C# / MCP
http://mvp.support.microsoft.com
http://blogs.ugidotnet.org/topics
whynot [ at ] topics [ dot ] it
Corrado Cavalli [MVP]
2009-04-23 06:55:29 UTC
Permalink
Post by Gabriele
Post by Corrado Cavalli [MVP]
Esatto, il client Silverlight chiama un servizio WCF che sta nello
stesso site of origin il quale a sua volta chiama il servizio
finanziario.
Difatti e' stata l'unica soluzione per risolvere il problema.
Ma è un bug ? non capisco perchè in una pagina asp.net funziona
correttamente, quindi non è un problema di cross-domain.
Nessun bug ma, come tra l'altro succede per XmlHttprequest oppure per
Flash, una feature di sicurezza.
Sul tuo sito ci vai liberamente, se vuoi andare su altri, o gli altri
ti autorizzano (via clientaccesspolicy.xml) oppure la comunicazione
deve avvenire intra-server.
--
Corrado Cavalli [Microsoft .NET MVP-MCP]
UGIdotNET - http://www.ugidotnet.org
Weblog: http://blogs.ugidotnet.org/corrado/
Gabriele
2009-04-23 08:00:01 UTC
Permalink
Grazie per il vostro aiuto.

Loading...