我基本上有以下内容:
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秒才能开始申请?
答案 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