publicar .net wcf

.net - publicar - ¿Cuál es el propósito de WCF Service Library?



publish wcf service to iis 7 (3)

La "aplicación de servicio WCF" en sí misma es una aplicación de servicio web directa que depende de la tecnología WCF (que es similar al desarrollo de servicios web ASP.NET). La "biblioteca de servicios WCF" es un componente compilado que se puede implementar como una red servicio o un servicio de Windows o incluso como parte de una aplicación de alojamiento personalizada.

- Desarrollar una biblioteca de servicios WCF y alojarlo como un servicio web de WCF

¿Cuál es el propósito de WCF Service Library? Entiendo que si crea un servicio alojado en IIS, crea un proyecto web, si está alojado por sí mismo, cree un .exe.

¿Cuál es el escenario de la vida real para usar WCF como DLL?


Si bien es cierto que crear un servicio WCF como una biblioteca de clase le da más flexibilidad, esa flexibilidad tiene un costo, y es un error suponer que la solución más flexible es siempre la preferida, o que la solución menos flexible es infantil o solo adecuado para "simples propósitos de instrucción".

La gran mayoría de los servicios de WCF se alojan como servicios web y nunca se implementarán de otra manera.

Aquí hay tres ventajas de usar una aplicación de servicio WCF en comparación con una biblioteca de clase WCF:

  1. Si crea su servicio web como una biblioteca de clase, los archivos de configuración serán archivos app.config en lugar de archivos web.config. Los archivos App.config no admiten nativamente varios archivos de configuración y config transforma la forma en que lo hacen los archivos web.config. Si desea que las configuraciones se transformen en sus archivos app.config, debe usar una solución de terceros, como Slow Cheetah.

  2. Cuando llega el momento de publicar su sitio, si utiliza una aplicación de servicio WCF, puede aprovechar al máximo Web Deploy (http://www.iis.net/downloads/microsoft/web-deploy), que es una forma poderosa y flexible de publique su solución a IIS.

  3. Si decide automatizar su compilación y despliegue para una integración continua con TFS, llegará un momento en el que querrá automatizar la publicación de su servicio. Si utiliza un servicio WCF, puede configurar TFS para ejecutar Web Deploy, que fusionará sus archivos web.config de acuerdo con la configuración de compilación de destino, realizará una publicación incremental, habilitará la publicación sin derechos de administrador en el servidor y otros beneficios. Si utiliza una biblioteca de clases WCF, tendrá que escribir una solución de flujo de trabajo personalizada para fusionar los archivos app.config, utilizar xCopy para la implementación y, en general, le resultará más difícil automatizar la implementación.

En resumen, la solución más flexible, como suele ser el caso, implica el costo de perder el soporte específico de la herramienta. Si, como la mayoría de las soluciones de servicio WCF, su aplicación siempre se hospedará en IIS, puede considerar aprovechar esta compatibilidad mediante el uso de una aplicación de servicio WCF en lugar de una biblioteca de clases WCF.


Siempre crearía una biblioteca WCF como una biblioteca de clases, es mucho más fácil de usar. Tiene total flexibilidad para alojar su servicio WCF dentro de IIS (suministrando un directorio virtual y un archivo .svc dentro de él), o puede escribir su propio EXE de alojamiento autónomo y hacer referencia al servicio WCF en la biblioteca de clases.

Poner un servicio WCF directamente en un proyecto web parece una muy mala idea y solo puede ser útil para fines educativos muy simples, solo para mostrar cómo comenzar. Nunca haría esto para un sistema "en vivo".

Bagazo