Pregunta

Tenemos un problema de interconexión muy complicado en el que el hilo utilizado para inicializar un sistema de terceros tiene que ser el mismo hilo que se usa para finalizarlo. Falta de resultados en un punto muerto. Estamos realizando una interrupción de un servicio de WCF alojado en IIS. Actualmente, esta limpieza se realiza a disposición y normalmente funciona muy bien. Desafortunadamente, bajo la carga pesada IIS hará una descarga grosera y nunca llegamos a llamar. ¡Podemos mover la lógica de apagado a un finalizador crítico, pero eso no ayuda, ya que ya no tenemos acceso al hilo de inicialización! En este punto, nuestro único recurso parece estar notificando al CLR que ahora es probable que la APPDOMAIN esté en un estado corrupto. Sin embargo, no estoy seguro de cómo hacer eso (o si es posible). Puede ser que esta sea la utilidad de los contratos a nivel de clase, pero admito que realmente no entiendo a los completamente.

Editar: Alternativamente, esto se puede ver como un problema de afinidad de hilo en el finalizador. Si alguien tiene una solución inteligente a eso, soy todos los oídos :)

¿Fue útil?

Solución

Trate de dividir el código que depende de esa dependencia nativa a una aplicación de servicio independiente de Windows si es posible.Si no puede funcionar bien con WCF / IIS, debe evitar los conflictos en lugar de luchar contra él.

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