答案 0 :(得分:0)
我看到没有人回复,但无论如何我都会发布一些消息......
我们发现,在启动应用程序池之前,将服务状态设置为“已启动”并打开运行上述代码的新线程(new Thread(...)
)(使用WMI启动应用程序池)解决这个问题。
这是服务的OnStart
方法的伪代码:
OnStart {
StopProcedure();
InvokeInitXServer1And2(); //COM-Exe servers
InvokeInitCOMPlusApplication(); //dllhost.exe
SetServiceStatus(SERVICE_STARTED);
Thread worker = new Thread(new threadStart(IISAppPoolStartWMI); //Calls the code
}
这是服务在合理时间内启动的唯一方式(最多3分钟,实际机器和虚拟机的平均值大约为1.5分钟!)并启动w3wp.exe进程。
如果有人对它进行了探索(MTA \ STA问题?!?!?),我将很乐意阅读它。