Pergunta

Atualmente, estou tenho um serviço WCF que usa um DLL para o seu serviço. O objecto COM só é carregado uma vez e guardadas por meio de um Singleton. O problema é a primeira execução leva cerca de 1 minuto para carregar o objeto COM. O serviço WCF está hospedado através de um serviço do Windows. Eu estou querendo saber como eu posso carregar o singleton do objeto COM através da inicialização do Windows Service.

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

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

    objectConn.getInstance()
}

Quando tento adicionar a carga do Singleton no OnStart da inicialização do Windows Service, ele sempre falha. Gostaria de perguntar se isto i a maneira correta de adicionar rotina de inicialização para a instância objectConn. Tentei fazer o carregamento singleton no construtor MyService mas ele só é chamado com a primeira chamada para o serviço web operação / método que invoco o que torna a primeira chamada de serviço estranho.

Eu li sobre acho injeção de dependência, mas o comportamento agregado não é aplicável desde que eu só quero carregar a fonte objeto COM uma vez.

Foi útil?

Solução

Você provavelmente pode fazer isso - mas eu recomendo fazê-lo antes do

host.Open()

chamada. Esta chamada gira todo o tempo de execução WCF e tudo, e eu preferiria fazer todas as tarefas de inicialização antes que, se alguma vez possível.

Marc

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top