in

Consumir un servicio web desde Silverlight 2.0

Last post 05-22-2008 9:40 by Juanra. 0 replies.
Page 1 of 1 (1 items)
Sort Posts: Previous Next
  • 05-22-2008 9:40

    • Juanra
    • Top 25 Contributor
    • Joined on 05-16-2007
    • Posts 13
    • Points 250

    Consumir un servicio web desde Silverlight 2.0

    Estoy intentando consumir un servicio creado con WCF desde Silverlight 2.0. Evidentemente tengo problemas, con Silverlight no puedo consumir servincios con binding de tipo WSHttpBinding, y tienen que ser de tipo BasicHttpBinding. Esta es la configuración del mi "ServiceReference.ClientConfig":

    <?xml version="1.0" encoding="utf-8"?>
    <configuration><system.serviceModel><bindings><basicHttpBinding><binding name="BasicHttpBinding_IServicios" maxBufferSize="65536"maxReceivedMessageSize="65536"><security mode="None" /></binding></basicHttpBinding></bindings><client><endpointaddress=http://10.0.0.202:8081/vggecwcv1/serviciosbinding="basicHttpBinding"bindingConfiguration="BasicHttpBinding_IServicios"contract="ServiceReference1.IServicios"name="BasicHttpBinding_IServicios" /></client></system.serviceModel></configuration>

    Al principio tuve problemas con el CrossDomain, pero ahora mismo creo que he conseguido superar ese problema. He colocado un fichero llamado "clientaccesspolicy.xml"  en la raiz del proyecto web, pero no tengo muy claro que sea necesario, pues no he llegado a saber si esta política de cross-domain es para el servidor de WCF o para el cliente SilverLight que lo consume.

    <?xml version="1.0" encoding="utf-8" ?>
    <
    access-policy>
    <
    cross-domain-access>
    <
    policy>
    <
    allow-from>
    <
    domain uri="*"/>
    </
    allow-from>
    <
    grant-to>
    <
    resource include-subpaths="true" path="/"/>
    </
    grant-to>
    </
    policy>
    </
    cross-domain-access>
    </
    access-policy>

    Me gustaría saber si realmente tengo que incluir este fichero. Pero ...

    El error que tengo ahora mismo es el siguiente: 

    Se produjo una excepción de tipo 'System.ServiceModel.ProtocolException' en System.ServiceModel.dll pero no se controló en el código del usuario

    Información adicional: [UnexpectedHttpResponseCode]
    Arguments:Not Found
    Debugging resource strings are unavailable. Often the key and arguments provide sufficient information to diagnose the problem. See
    http://go.microsoft.com/fwlink/?linkid=106663&Version=2.0.30226.2&File=System.ServiceModel.dll&Key=UnexpectedHttpResponseCode

     Las llamadas al servicio WCF tienen que ser asíncronas, y así lo estoy haciendo, pero claro en Visual Basic, y me temo que me falta recoger algún valor cuando termina la llamada asíncrona. En C# hay un montón de ejemplos de como hacer eso, pero en Visual Basic no he visto nada.

    Este es el código que hace la llamada al servicio:

    Private Sub Sub_bEnviarEmpleado(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs)
    Dim miempleado As New ServiceReference1.empleados
    miempleado.nombre =
    "Juanra"
    miempleado.apellidos = "Alemany"
    Dim miservicio As New ServiceReference1.ServiciosClient
    miservicio.AgregarEmpleadoAsync(miempleado)
    End Sub

     

    Alguien puede ayudarme ???

    Gracias por todo,

     

    Juanra.


    Filed under:
    • Post Points: 5
Page 1 of 1 (1 items)
Baleares on .NET®
Powered by Community Server (Commercial Edition), by Telligent Systems