使用WMI \ ADSI(C#)启动应用程序池会在重新引导后立即挂起

时间:2009-11-20 20:52:34

标签: c# wmi adsi

1 个答案:

答案 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问题?!?!?),我将很乐意阅读它。