我现在有一个使用COM DLL为它服务的WCF服务。 COM对象只装载一次,并通过一个单独保存。问题是第一次运行时间约1分钟,加载COM对象。 WCF服务通过一个Windows服务托管。我想知道我如何通过Windows服务的启动时加载的COM对象单。

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

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

    objectConn.getInstance()
}

当我尝试添加辛格尔顿的负荷在Windows服务启动的OnStart中,它总是失败。我想问一下,如果我这个正确的方法来添加启动程序的objectConn实例。我试图把在为MyService construtor的单身加载但它仅调用/第一次调用Web服务操作,我调用这使得第一服务调用尴尬方法。

我读到DependencyInjection但我认为添加的行为是不适用的,因为我只是想一旦加载COM对象源。

有帮助吗?

解决方案

您也许可以做到这一点 - 但我会建议之前做

host.Open()

呼叫。此调用旋转了整个WCF运行时和一切,我宁愿在这之前做的所有初始化任务,如果有的话可能。

马克

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top