? Supongo que mi mente está tan involucrada en IIS y aplicaciones web que no puedo pensar en una razón para pasar por la molestia de usar un autohospedado Servicio WCF. Siempre he tenido la disponibilidad de IIS, por lo que crear un servicio de WCF autocapturado me parece más trabajo del que me gustaría hacer. ¿Por qué querría hacer esto?¿Alguien tiene un ejemplo de por qué yo albergaría un servicio de WCF
Respuesta
Las porciones de puntos:
- sin necesidad de IIS - esto puede ser una gran ventaja en ciertos servidores
- se llega a definir completamente las direcciones de servicio - con IIS, que están dictados por el nombre del servidor , nombre del directorio virtual, más el nombre y la extensión del archivo SVC (por ejemplo,
http://server/virtualdir/yourservice.svc
, mientras que con autohospedaje puede usarhttp://Server:7171/Services/MegaService
o lo que quiera) - sin riesgo de encontrarse con problemas relacionados con el reciclado de los grupos de aplicaciones (esto se puede reducir significativamente mediante el uso de grupos de aplicaciones dedicadas separadas para usted r Servicios de WCF)
- capacidad para detener e iniciar los servicios NT, por ejemplo, teniendo los servicios en línea para un poco (menos fácil de hacer con IIS, creo)
- un mayor control sobre la creación y las opciones para el apoyo
ServiceHost
- para todos los protocolos de la caja - netTcpBinding etc. requiere pasos adicionales (lo que podría ser olvidado) en IIS7 y son imposibles de realizar en IIS6
Por ejemplo vamos a considerar las ventajas de alojar en servicio de las ventanas:
- controlado por vida proceso
- Aplicación alcance
- admite en todos las versiones de Windows
- también que no se atan sólo para HTTP si está utilizando Windows 2003 y más adelante (sin FUE)
Se puede considerar también
- Es fácil de depurar: la depuración de los servicios de WCF que se alojan en un entorno autohospedado proporciona una forma familiar de depurar , sin tener que adjuntar a las aplicaciones separadas que activan su servicio .
- Es fácil de implementar: en general, implementando aplicaciones simples de Windows es tan fácil como xcopy. No necesita escenarios complejos de implementación en granjas de servidores , y similares, para implementar una aplicación simple de Windows que sirve como WCF ServiceHost.
No pensé en la depuración y la implementación. Esa es una buena razón para usar esto. Gracias por responder. –
Todo se basa en cómo desea usar WCF. No siempre la lógica que desea exponer como un servicio necesita/puede alojarse en IIS. Por ejemplo:
- está utilizando WCF para construir un canal P2P entre varias instancias de su aplicación cliente en la red local.
- usted está construyendo un servicio local de WCF que se implementa en un cliente SKU, donde IIS no se instala por defecto
- desea tener un control completo de sus direcciones de punto final
- que desea utilizar net.tcp o net.pipe canales
- desea tener un control total sobre el modelo de toda la vida y ejemplo de su servicio
- desea que el servicio que se ejecuta como el usuario interactivo (suplantación no es siempre la respuesta)
Un ejemplo de caso de uso lo haría ser aplicaciones de cliente. Puede autoevaluar un servicio WCF en la aplicación cliente para que el cliente pueda recibir notificaciones de un sistema back-end.
Si está ejecutando Windows de 64 bits, no puede compilar y ejecutar un servicio WCF automáticamente, debe autoejecutarse.
me preguntó acerca de una situación particular aquí: Ways to access a 32bit DLL from a 64bit exe
tuve una aplicación de 64 bits que requiere el uso de una DLL de 32 bits. Así que pensé en envolver el archivo DLL de 32 bits en un servicio WCF de 32 bits. No vayas. No pude forzar el servicio para ejecutar 32 bits. Tuvo que autohospedarse.
Servicios de alta carga net.tcp o enlaces net.pipe no son para IIS en absoluto. Funciona solo con IIS 7 + 3 servicios adicionales: WAS, Net. * Adaptador de escucha & Puerto compartido (evento si no usa el uso compartido). Es una solución muy compleja. Debe configurar port sharing, pero se bloqueará algún día con un socket o un error de conexión. SelfHost no lo hará.
IIS no es para transmisión. No trabajará "directamente con la transmisión de red". Trabajará con búferes de memoria o archivos temporales, por lo que no se beneficiará de la transmisión.
P.S. Se trata de WCF 3.5 & IIS 7.5. Espero que las próximas versiones sean mucho mejores.
- 1. ¿Cuántos ServiceContracts tiene un servicio WCF?
- 2. ¿Alguien usó un cliente WCF con SSRS un servicio web?
- 3. chosen.js :: ¿Alguien tiene un ejemplo real de trabajo?
- 4. ¿Alguien tiene un ejemplo válido en CAS Proxy Granting Ticket?
- 5. ¿Por qué mi servicio WCF da el mensaje 'no tiene un enlace con ninguno MessageVersion'?
- 6. Pasar credenciales de un servicio wcf a otro servicio wcf
- 7. ¿Alguien puede mostrar un ejemplo de MethodImplOptions.ForwardRef
- 8. ¿Es un servicio WCF un servicio web?
- 9. ¿Alguien tiene un ejemplo simple de UserControl con un solo ContentPresenter?
- 10. Ejemplo de un servicio RESTful bien documentado
- 11. Especifique un servicio Singleton en un servicio alojado de WCF
- 12. WCF Seguridad en un servicio de Windows
- 13. ¿Por qué WCF no admite tiempos de espera de servicio?
- 14. Prueba de un servicio web de WCF
- 15. ¿alguien puede explicar por qué size_t type se usa con un ejemplo?
- 16. ¿Alguien tiene un ejemplo de una interfaz de usuario para crear una cláusula SQL Where?
- 17. ¿Alguien tiene un corredor mstest para Jasmine?
- 18. Autenticación a un servicio de WCF
- 19. Implementación de un servicio WCF asíncrono
- 20. ¿Por qué IE no analiza el XML devuelto por un Servicio de datos WCF?
- 21. ¿Qué tipo de excepción debe arrojarse con un Servicio WCF?
- 22. ¿BouncyCastle tiene un servicio SecureRandom?
- 23. Inyectando datos a un servicio de WCF
- 24. C# - ¿Alguien puede mostrarme un ejemplo muy simple de interfaces
- 25. ¿Cómo autentico un servicio de datos WCF?
- 26. ¿Alguien tiene un compilador B en funcionamiento?
- 27. ¿Por qué este servicio WCF no reconoce el parámetro UriTemplate?
- 28. Servicio de prueba unitaria que tiene llamada WCF (MSUnit + Moq)
- 29. El cierre de un servicio de Windows que tiene roscas
- 30. ¿Alguien tiene un ejemplo funcional de una propiedad recuperada en core-data?
Gracias por la información, esto fue muy útil, explica mucho. –