Se inician dos hosts DLL cuando un objeto COM+ está habilitado

En este artículo se explica un comportamiento que se inicia al iniciar dos hosts DLL cuando la agrupación de aplicaciones está habilitada para una aplicación COM+.

Versión del producto original:   Winsock
Número de KB original:   3148846

Resumen

Cuando una aplicación COM+ está configurada para usar la agrupación de aplicaciones, se inician dos hosts DLL en lugar de un host que se inicia.

Por qué se produce este comportamiento

Cuando la agrupación de aplicaciones está habilitada para una aplicación COM+, las solicitudes de creación de objetos se redirigen a través del servicio RPC. La agrupación de aplicaciones usa un algoritmo Round Robin para enviar solicitudes de creación de objetos a los procesos de host de DLL que se inician.

Cuando se crea un objeto del modelo de objetos componentes (COM), se usa principalmente la CoCreateInstance   CoCreateInstanceEx función or. La segunda forma de crear objetos COM es obtener el generador de clases del archivo DLL y, a continuación, usar el objeto de generador de clases. Este método se usa con más frecuencia cuando se crea más de un objeto COM a la vez.

CoCreateInstancecuenta como una sola solicitud de creación de objeto. Si usa el método de fábrica de clases, cuenta como dos solicitudes de creación de objetos. Porque la primera creación es para el objeto del generador de clases. Si tiene habilitada la agrupación de aplicaciones, esta configuración iniciará dos Dllhost.exe procesos.

.NET utiliza el método de generador de clases para crear objetos COM. Por lo tanto, dos hosts DLL se inician en clientes .NET al crear un objeto desde la aplicación COM+ de destino.

Estado

Este comportamiento es una característica del diseño de la aplicación.