una servicio referencia que pueden puede obtener metadatos los invocar hubo habilitar esta error direccion desde desconocido descargar contienen configurar componente c# soap wcf-ria-services

c# - referencia - ¿Cómo acceder al servicio WCF RIA desde el servicio de Windows?



los metadatos contienen una referencia que no se puede resolver (4)

Tengo una aplicación Silverlight 4 que funciona (VS2010, SL4, WCF RIA, alojada en mi caja de desarrollo usando Cassini, Windows 7 de 64 bits). Dentro del directorio ClientBin tengo un archivo .svc que describe mi servicio:

<% @ServiceHost Service="MyApp.Services.MyService Factory="System.ServiceModel.DomainServices.Hosting.DomainServiceHostFactory" %>

Cuando navego a http: // localhost: 52878 / ClientBin / MyApp-Services-MyService.svc veo lo siguiente:

Usted ha creado un servicio. Para probar este servicio, deberá crear un cliente y usarlo para llamar al servicio. Puede hacerlo utilizando la herramienta svcutil.exe desde la línea de comandos con la siguiente sintaxis: svcutil.exe http: // localhost: 52878 / ClientBin / MyApp-Services-MyService.svc? Wsdl

Quiero acceder a ese servicio desde una aplicación de servicio de Windows. Tengo entendido que necesito habilitar puntos finales SOAP para que esto suceda. Entonces, agrego lo siguiente a mi archivo web.config:

<domainServices> <endpoints> <add name="soap" type="System.ServiceModel.DomainServices.Hosting.SoapXmlEndpointFactory, System.ServiceModel.DomainServices.Hosting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /> </endpoints> </domainServices>

En primer lugar, Intellisense se queja de la presencia de la etiqueta y dice:

El elemento system.ServiceModel tiene un elemento secundario no válido domainServices.

En segundo lugar, la aplicación Silverlight antes mencionada deja de funcionar, presumiblemente porque este cambio rompe los servicios web subyacentes.

En tercer lugar, parece que el ensamblado System.ServiceModel.DomainServices.Hosting no contiene realmente el tipo SoapXmlEndpointFactory; si trato de buscar el servicio después de agregar lo anterior a web.config, veo:

No se pudo cargar el tipo ''System.ServiceModel.DomainServices.Hosting.SoapXmlEndpointFactory'' del ensamblado ''System.ServiceModel.DomainServices.Hosting, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35''.

Si inspecciono el ensamblaje con Reflector, veo que contiene los tipos DomainServiceEndpointFactory y PoxBinaryEndpointFactory, pero no SoapXmlEndpointFactory.

¿Podría alguien decirme por favor cómo debería estar haciendo esto? No puedo creer que sea tan difícil simplemente consumir un servicio WCF RIA en otra cosa que no sea una aplicación de Silverlight.



En lugar de ...

System.ServiceModel.DomainServices.Hosting

usa el ensamble ...

Microsoft.ServiceModel.DomainServices.Hosting

del kit de herramientas de WCF RIA Services. Contiene el tipo SoapXmlEndpointFactory .

La ubicación predeterminada es ... %Program Files%/Microsoft SDKs/RIA Services/v1.0/Toolkit/Libraries/Server


La clase SoapXmlEndpointFactory es parte del

Microsoft.ServiceModel.DomainServices.Hosting

ensamblado, que está incluido en Silverlight Toolkit.

Mira aquí


<sectionGroup name="system.serviceModel"> <section name="domainServices" type="System.ServiceModel.DomainServices.Hosting.DomainServicesSection, System.ServiceModel.DomainServices.Hosting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" allowDefinition="MachineToApplication" requirePermission="false" /> </sectionGroup>

Declare esto en ConfigSections. Es importante incluir el sectionGroup correctamente