Pregunta

Soy actualmente un servicio WCF que utiliza una DLL COM para su servicio. El objeto COM se carga sólo una vez y se guarda a través de un conjunto unitario. El problema es la primera ejecución tarda aproximadamente 1 minuto para cargar el objeto COM. El servicio WCF está alojado a través de un servicio de Windows. Me pregunto cómo puedo cargar el singleton de objetos COM a través de la puesta en marcha del servicio de Windows.

protected override void OnStart(string[] args)
{
    if (host != null)
    {
        host.Close();
    }

    Type serviceType = typeof(MyService);
    host = new ServiceHost(serviceType);
    host.Open();

    objectConn.getInstance()
}

Cuando intento agregar la carga de la Singleton en el OnStart de la puesta en marcha de servicios de Windows, siempre falla. Me gustaría preguntar si esto i la forma correcta de poner la rutina de inicio para la instancia objectConn. Traté de colocar la carga Singleton en el Construtor MyService pero sólo se le llama con la primera llamada a la operación del servicio web / método que invoco que hace la primera llamada incómoda servicio.

He leído acerca de DependencyInjection pero creo que el comportamiento agregado no es aplicable ya que sólo quiero cargar la fuente de objeto COM vez.

¿Fue útil?

Solución

Puede probablemente hacer esto - pero recomendaría hacerlo antes de la

host.Open()

llamada. Esta llamada empiece a girar todo el tiempo de ejecución de WCF y todo, y yo preferiría hacer todas las tareas de inicialización antes de eso, si es que es posible.

Marc

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