控制台应用程序/服务需要40秒才能启动

时间:2012-07-25 13:58:00

标签: c# windows .net-3.5 windows-services

我基本上有以下内容:

partial class OperationWindowsService : ServiceBase
{
public static void Main(string[] args)
{
Console.WriteLine("Starting app.");
//...build opservice
if (Environment.UserInteractive)
 {
   Console.WriteLine("interactive");
   var task = opservice.StartConsole(args);
}else
 {
    ServiceBase.Run(opservice);
    logger.LogInfo("ServiceBase.Run Called");
 }

}
//... normal onstart overrriden
}

当作为控制台应用程序运行或在我的盒子上作为Windows服务运行时,它立即启动。在某些windowsxp框中,它部署到“启动应用程序”前需要45秒。或者出现任何记录。我们怀疑它与速度有关,因为有些盒子是相同的硬件/图像。

任何人都可以告诉我为什么在第一行被击中之前需要45秒才能开始申请?

1 个答案:

答案 0 :(得分:2)

ProcessMonitor特别有助于在执行任何操作之前查看exe的功能。

原来: 我加载了RSACryptoServiceProvider,它加载了一个dll,它加载了另一个,它试图通过网络连接来证明自己。 它运行的盒子被锁定并超时网络连接导致加载dll的延迟。

修正: 在app.config -

中设置
<runtime>
    <generatePublisherEvidence enabled="false"/>
</runtime>

了解更多信息,请看: http://blogs.msdn.com/b/tess/archive/2008/05/13/asp-net-hang-authenticode-signed-assemblies.aspx