Dos hosts DLL se inician cuando un objeto COM+ está habilitado

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

Versión original del producto: 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 iniciar un host.

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 enrutan 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 DLL que se inician.

Al crear un objeto De modelo de objetos componentes (COM), se usa principalmente la CoCreateInstance función o CoCreateInstanceEx . La segunda manera 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.

CoCreateInstance cuenta como una única solicitud de creación de objetos. Si usa el enfoque de generador de clases, cuenta como dos solicitudes de creación de objetos. Porque la primera creación es para el objeto de generador de clases. Si tiene habilitada la agrupación de aplicaciones, esta configuración inicia dos Dllhost.exe procesos.

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

Estado

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