Pregunta

Tengo un servicio de WCF compuesta por dos proyectos:

  1. Biblioteca de servicio WCF
  2. aplicación WCF Web

El primer proyecto tiene un IMyService llamada de servicio implementado por MyService. Se configura mediante el uso de WS vinculante y si presiono F5 en este proyecto la WcfTestClient vinculante sea WS. En la aplicación web Tengo un archivo .svc con esta marcado con el mismo nombre

 <%@ ServiceHost Language="C#" Debug="true" Service="[Namespace].MyService" %>

Si presiono F5 en este proyecto se hace un BasicHttpBinding. Lo mismo en el cliente. ¿Por qué?

¿Fue útil?

Solución

acabo de comprobar que el proyecto de WCF Biblioteca servicio por defecto crea app.config con WSHttpBinding utilizado para el servicio por defecto. Cuando se ejecuta WcfTestClient siempre utiliza esta configuración local. Si desea utilizar WcfTestClient para poner a prueba los servicios adicionales que se deben añadir a su configuración esta configuración. Esta configuración no se utiliza para nada más.

aplicación de servicio de WCF utiliza web.config. En WCF 4.0 que utiliza la configuración simplificada que añade puntos finales sobre la base de algunas condiciones predefinidas. Por defecto se añade BasicHttpBinding punto final a todos los servicios expuestos a través de HTTP con ServiceHostFactory común.

Otros consejos

¿Cómo es su archivo de configuración de configuración? Si se configura el punto final a utilizar el wsHttpBinding, esta es la que se debe utilizar.

¿Le importaría añadir algo de código aquí (incluyendo las de punto final y vinculante detalles del archivo de configuración), para que pudiéramos echar un vistazo?

Gracias, Roberto Lopes.

Creo que la pregunta original era muy mal planteado, para obtener una respuesta satisfactoria que necesita para indicar claramente todos los detalles.

En primer lugar la versión de Visual Studio se usa yo? Dado que no se dice nada, voy a suponer que es la versión más reciente VS2010 con SP1.

Vamos a decir que tiene una solución de Visual Studio que tiene dos proyectos, uno es una biblioteca de servicio WCF, otro es una aplicación WCF, ambos creados utilizando la plantilla de proyecto por defecto sin ningún ajuste manual.

  • La Biblioteca Servicio WCF tendrá un archivo app.config con la siguiente línea:

en definitiva, Visual Studio 2010 (SP1) utiliza wsHttpBinding para proyectos WCF Biblioteca servicio de forma predeterminada.

  • El proyecto de aplicación de servicio de WCF, sin embargo, tendrá un archivo Web.config que no contiene ninguna definición explícita de punto final, en cuyo caso, la unión utiliza el punto final predeterminado es basicHttpBinding.

El PO dijo: "Cuando he pulsado F5 en este proyecto ....", esto es una declaración muy engañosa. ¿Qué significa que "presione F5 en un proyecto"? Qué quiere decir que ha seleccionado el nodo del proyecto en el árbol de soluciones, a continuación, presiona F5? Si ese es el caso, lo que sucede siempre dependerá de qué proyecto se establece como el proyecto de puesta en marcha de la solución (no en qué nodo del proyecto está actualmente seleccionada en Visual Studio interfaz de usuario).

Si el proyecto de aplicación de servicio de WCF es el proyecto de puesta en marcha, presionando F5 no hará que el cliente de prueba WCF para ejecutar, en cambio, hará que la carpeta del proyecto que se mostrará en el IE.

Si el proyecto WCF Biblioteca Servicio es el proyecto de puesta en marcha, se llevará a cabo el cliente de prueba WCF, y esto es sólo porque en la sección de depuración de la ventana de propiedades del proyecto, las opciones de inicio tiene la siguiente de forma predeterminada: /client:"WcfTestClient.exe "

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top