2011-05-06 12 views
5

Bien chicos, invoco sus intelectos combinados. Tengo una aplicación web con una aplicación Silverlight que llama a un servicio ria. El servicio ria se define dentro de la aplicación web y todo lo demás es excelente.Necesita orientación para llamar al servicio WCF de Silverlight 4

El problema es esto.

Entiendo que para que la aplicación Silverlight hable y sepa cuál es el servicio ria, debe agregar una referencia de servicio para ese servicio. La referencia de servicio define el servicio ria y configura el enlace de la conexión. Uno de los archivos que agrega es el ServiceReference.ClientConfig que tiene el enlace vinculante. Durante el desarrollo de esta aplicación, esta es la forma en que se configuró. Y funcionó perfectamente bien localmente y en el servidor de desarrollo.

Lamentablemente, hubo problemas al implementar en el servidor interno de los clientes. En este momento estaba en otros proyectos mientras mi compañero de trabajo continuaba con el despliegue. Pronto se frustró con los errores tontos que estaban ocurriendo y reclutó alguna ayuda. Este desarrollador entró y, aunque lo hizo funcionar, pero para hacerlo eliminó la referencia de servicio del proyecto Silverlight pero dejó el ServiceReference.ClientConfig que apuntaba a la ubicación del servicio en la aplicación web (pero eso es todo, no hay definición o explicación sobre lo que hace el servicio y no estoy seguro de cómo se supone que la aplicación Silverlight sabe cómo trabajar con ella ...). Esto funciona perfectamente en la estación de trabajo de mi compañero de trabajo y él ha implementado esta versión muy bien en el servidor de los clientes.

Cuando abro el proyecto, no se ejecuta en absoluto. Y la razón es que no sabe cuál es el servicio que estoy usando en el código. En concreto, no se sabe donde esto es (nombres cambiados de aclaración):

Imports SilverlightApp.ServiceReference.WebApp.Service

he limpiado la solución, completamente borrada y consiguió el último de control de código fuente, construyó la primera aplicación web y se aseguró el servidor de desarrollo asp.net se ejecutaba para que la dirección en el ServiceReference.ClientConfig se resolviera correctamente. Pero, por desgracia, todavía no se sabe qué es Imports SilverlightApp.ServiceReference.WebApp.Service.

Entonces, para que funcione en mi estación de trabajo, agregué la referencia de servicio pero mantuve los enlaces de conexión actuales para que coincidieran con el punto final en la configuración web de la aplicación web. y cambió la declaración de importación al Imports SilverlightApp.ServiceReference y todo funciona bien.

¿Cuál es el motivo de esta locura?!?!

Respuesta

2

Todas las cosas de las que habla están relacionadas con un servicio WCF NO un Servicio WCF RIA. Funcionan de maneras muy diferentes cuando los consume en su aplicación cliente.

Un servicio WCF requerirá una referencia de servicio y ServiceReference.ClientConfig.

Un WCF RIA Service no lo hace. El enlace al servicio WCF RIA se establece en las propiedades del proyecto silverlight en la pestaña de Silverlight en la parte inferior. Cuando compile, generará un código de contexto del lado del cliente en la carpeta Generated_Code. Muestre todos los archivos y lo verá.

Espero que ayude?

Kevin

+0

Aha. Eso tendría mucho sentido. Mi compañero de trabajo tiene la carpeta Generated_WCF_Code, mientras que yo no. Sin embargo, he establecido el enlace en las propiedades del proyecto y todavía no me deja construir – keynone

+0

¿Cuáles son los errores de compilación?¿Tiene todas las herramientas de servicio WCF RIA instaladas? Además, consulte la configuración del proyecto de su sitio web y verifique que su aplicación Silverlight figure en la pestaña de aplicaciones de Silverlight. –

+0

Los errores de compilación se producen cuando intento instanciar un cliente de servicio y hacer llamadas a él. La referencia de importación no se resuelve cuando abro el proyecto en mi estación de trabajo. Y sí, la configuración del proyecto web es correcta y tengo el kit de herramientas de servicios ria. Y gracias por tu ayuda :) – keynone

Cuestiones relacionadas