我目前有一个使用 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 中添加 Singleton 的负载时,它总是失败。我想问一下这是否是为 objectConn 实例添加启动例程的正确方法。我试图将单例加载放在 MyService 构造函数中,但它仅在第一次调用我调用的 Web 服务操作/方法时调用,这使得第一次服务调用很尴尬。
我阅读了有关 DependencyInjection 的信息,但我认为添加的行为不适用,因为我只想加载一次 COM 对象源。