He desarrollado un VB.NET servicio WCF que recives y envía los datos. Cuando el primer cliente se conecta se inicia la salida de datos que sigue también si el cliente está cerrado. Si un nuevo cliente se conecta, a continuación, se crea un nuevo objeto y la salida de datos se inicia en el begninning y continúa en paralelo con la instancia anterior. Es allí una manera de leer el mismo servicio objeto de varios clientes?

El servicio de self-hosted.

ACTUALIZACIÓN: he resuelto el problema de añadir el siguiente código a la clase de servicio:

<ServiceBehavior(ConcurrencyMode:=ConcurrencyMode.Multiple, 
    InstanceContextMode:=InstanceContextMode.Single)>
    ...

El uso de la ServiceHost sobrecarga que lleva en el SingletonInstance, el servicio debe ser etiquetado con el adecuado ServiceBehaviours.

OriginalEl autor Marco Bettiolo | 2008-10-20

2 Comentarios

  1. 2

    Puedo hablar acerca de las opciones aquí:

    http://www.iserviceoriented.com/blog/post/Configuring+Rendimiento+Opciones+-+WCF+Tengo+3.aspx

    Primer lugar, usted tiene InstanceContextMode que puede ser simple, PerCall, o PerSession. Esto controla cómo las nuevas instancias de la clase de servicio se crean.

    Además de esto, la limitación y la simultaneidad ajustes son importantes para mirar, desde la creación de la instancia de contexto modo a algo así como el único sin necesidad de cambiar el modo de concurrencia de múltiples podría tener consecuencias gravemente negativas. Echa un vistazo al post para una discusión más detallada.

    InstanceContextMode=Single aún no controla los procesos de IIS. IIS todavía puede decidir tomar abajo el proceso de servicio si no hay solicitudes pendientes.

    OriginalEl autor jezell

  2. 2

    Si selfhosting su servicio, puede utilizar el ServiceHost sobrecarga del constructor que toma la instancia de servicio en lugar de un tipo de servicio. Todos los clientes se conectan a la misma instancia de servicio.

    Si está alojado en IIS, usted no tiene control sobre las instancias de servicio. Lo que es aún peor, usted no tiene control sobre el proceso de toda la vida. Por lo tanto, si usted desea una signleton, usted tendrá que tener su propio proceso y las instancias de servicio de conectarse a ella.

    ACTUALIZACIÓN: Como @jezell señaló, hay un cierto control sobre la creación de instancias de los servicios de IIS a través de la InstanceContextMode. Sin embargo, que aún no controla los procesos de IIS.

    Estás hablando de IIS 6? Supongo que podría haber algún cambio en IIS 7, pero aunque no estoy seguro. Me dejan saber si esto es posible con IIS 7. Gracias.
    Selfhosting se realiza en el servicio de Windows o un proceso independiente, mediante la creación de una instancia de ServiceHost y dándole el tipo o la instancia del servicio de acogida. En este escenario, el código de autor controla el proceso de la vida y/o las instancias de servicio.
    Estoy usando un selfhosting servicio y tengo que utilizar el servicio de sobrecarga del constructor. Voy a intentar. Gracias
    Esto es incorrecto.
    jezell la respuesta hizo el truco, cuando voy a tener más tiempo voy a tratar de Franci Penov la respuesta.

    OriginalEl autor Franci Penov

Dejar respuesta

Please enter your comment!
Please enter your name here