为WCF服务加载COM对象的启动代码

为WCF服务加载COM对象的启动代码,wcf,windows-services,comobject,Wcf,Windows Services,Comobject,我目前有一个WCF服务,该服务使用COM DLL作为其服务。COM对象只加载一次,并通过单例保存。问题是第一次运行大约需要1分钟来加载COM对象。WCF服务通过Windows服务托管。我想知道如何通过启动Windows服务来加载COM对象单例 protected override void OnStart(string[] args) { if (host != null) { host.Close(); } Type serviceType =

我目前有一个WCF服务,该服务使用COM DLL作为其服务。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中添加Singleton负载时,它总是失败。我想问一下,这是否是为objectConn实例添加启动例程的正确方法。我试图将单例加载放在MyService construtor中,但它只在第一次调用我调用的web服务操作/方法时被调用,这使得第一次服务调用很尴尬


我读过DependencyInjection,但我认为添加的行为不适用,因为我只想加载COM对象源一次

您可能可以这样做,但我建议您在

host.Open()
打电话。这个调用会加速整个WCF运行时和所有事情,如果可能的话,我更愿意在此之前完成所有初始化任务

马克