Pregunta

A medida que estoy aprendiendo a usar los servicios WCF, me encuentro constantemente con tutoriales en Internet que mencionan el uso de un ServiceHost cuando utilizo un servicio WCF.

¿Qué es exactamente este ServiceHost ?


En mi proyecto actual, estoy usando un servicio WCF y tengo una referencia a él desde mi aplicación y siempre que quiero consumirlo desde mi aplicación, solo hago una instancia de su ServiceClient como tal:

new MusicRepo_DBAccess_ServiceClient(new InstanceContext(instanceContext), customBinding, endpointAddress);

Y luego acceda a mis métodos web ( OperationContract s) desde esa instancia (obviamente, se abre antes de consumir el método y luego se cierra con Abrir y Cerrar )

Mi servicio WCF es host en mi IIS y acabo de acceder al .svc desde mi aplicación para crear una instancia del ServiceClient .

Entonces, ¿por qué y dónde se usa ServiceHost ?

¿Fue útil?

Solución

Un ServiceHost básicamente le proporciona todo lo que necesita para hospedar un servicio WCF en una configuración que no sea IIS o WAS. Un lugar común para un ServiceHost sería en una aplicación de consola o servicio de Windows. Vea el código de ejemplo de MSDN para cómo configurar un ServiceHost en un aplicación de consola .

Otros consejos

La implementación de su servicio es solo una clase .NET: debe tener un entorno de tiempo de ejecución para que pueda ejecutarse de alguna manera. Para eso es el ServiceHost: cargará su clase de servicio, configurará los puntos finales y los oyentes del canal y todo eso, y le dará a su clase de servicio un "ecosistema". vivir y operar en.

Puede crear una instancia de la clase ServiceHost usted mismo en una aplicación de consola, un servicio de Windows o incluso una aplicación de Winforms, y así hacer que su clase de servicio WCF esté disponible para el mundo exterior, o puede delegar ese trabajo a IIS o WAS. Incluso IIS o WAS utilizarán un ServiceHost para alojar su servicio WCF: solo lo hacen de forma automática y en la demanda " - cada vez que llega una solicitud para su servicio WCF.

Marc

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