2010-09-30 13 views
8

Necesito desarrollar un servidor WCF (básicamente un servicio web que finalmente se ejecutará en IIS) y una aplicación cliente que accede al servicio. Tengo el proyecto del cliente y el servidor en la misma solución de Visual Studio (2008).Visual Studio: Desarrollar simultáneamente el servidor y el cliente WCF

¿Cuál es la forma recomendada de conectar al cliente al servidor durante el desarrollo?

Inmediatamente me vienen a la mente dos soluciones posibles: una es implementar el proyecto de servidor en algunos IIS después de cada cambio, y el otro es iniciar dos instancias de Visual Studio y usar un puerto TCP fijo para -Studio-integrado) servidor web del proyecto del servidor.

Dado que ninguna de estas opciones parece particularmente elegante para mí, me preguntaba si tal vez he pasado por alto el "camino correcto" obvia de hacerlo ...

Respuesta

17

La forma en que lo hago es así:
- Haga clic con el botón derecho en su archivo de solución y elija Establecer proyectos de inicio ...
- Elija proyectos de puesta en marcha múltiples y elija de inicio para su proyecto de cliente y servidor, deje los otros establecidos a ninguno .

Ahora ambos proyectos se ejecutarán al inicio, y podrá depurarlos.

1

porque tengo una gran cantidad de servicios de WCF utilizado por mi proyecto y no quiero tener que ejecutar demasiadas instancias de VS para la depuración, esto es lo que hago: -

Si está de acuerdo con tener un IIS local, podría considerar esto.

  1. Para cada servicio de WCF, he creado un proyecto de sitio web.

  2. Los proyectos de este sitio web también se comparten como carpetas web en IIS local. por ejemplo, http: \ mylocalmachine \ WCFService1 \ servicefile.svc

  3. En mis clientes WCF web.config, la URL del servicio se especifica como anteriormente. por ejemplo, (http: \ mylocalmachine \ WCFService1 \ servicefile.svc)

  4. Dado que no quiero implementar manualmente cada vez que cambio el servicio, en el puesto de construcción de cada proyecto de servicio WCF, tengo una tarea postbuild que las copias el contenido del directorio bin al directorio bin del sitio web para ese servicio WCF correspondiente (configuración única para el postbuild)

  5. Mi estructura de carpetas es tal que para cada proyecto de servicio, hay un host de servicio (sitio web) proyecto en el mismo nivel por lo que el postbuild es muy sencillo también.

  6. Cuando ejecuto mi cliente WCF (F5), los proyectos de servicio se compilan, sus contenidos se copian en el contenedor de sitios web (es decir, se despliegan automáticamente en IIS) y puedo depurar cualquier servicio ingresando al código como mi los servicios están en la misma solución que mi cliente WCF

Una ventaja adicional de este enfoque es que mi depuración (al menos de los servicios) también está utilizando IIS similar a lo que mi configuración de producción será.

Edit: No ponga los proyectos de acogida de servicios (sitios web) en mi solución en contrario al ejecutar mi cliente WCF, VS se abre una instancia de Cassini para cada uno de ellos, que es irritante y que de todos modos no necesito o utilizar

Cuestiones relacionadas