WPF应用程序启动时速度慢

时间:2009-07-06 12:26:06

标签: wpf windows-xp

我的WPF应用程序目前仅显示带有一些控件的屏幕,它不连接到DB或具有任何其他功能。这是一个简单的UI屏幕。

当我在某些计算机(WinXP SP2)中进行测试时,我发现启动时间超过15秒。他们都在我们的领域。

我已经抓住了一台类似的计算机,只安装了Windows,并且该应用程序需要2秒才能启动。

然后我将计算机添加到我们的域中,并使用域用户进行测试表明它还需要15秒才能启动。我再次使用之前的用户(本地用户)进行测试,但仍然很快。我创建了另一个本地用户,但域用户也需要15秒。 我添加了其他本地用户,但他们也很慢。

总结一下:应用程序只在一个用户中快速启动(2秒),这是我测试过的第一个用户。所有其他用户(域或本地)都很慢(15秒)。

我一直在检查Improving WPF applications startup time,但我的问题似乎需要采用不同的方法。有没有人弄清楚会发生什么?

5 个答案:

答案 0 :(得分:18)

我在此documentation from Microsoft找到了另一个解决此问题的方法。

将以下配置添加到app.config文件也可以解决问题:

<configuration>
    <runtime>
        <generatePublisherEvidence enabled="false"/> 
    </runtime>
</configuration>

这样,您无需更改计算机配置。它只是应用程序的配置。

<强>更新
似乎.NET 4.0修复了这个问题,如MSDN上记录的here

答案 1 :(得分:12)

系统是否已连接到网络但由于未配置代理而无法访问互联网?如果是这样,请转到Internet设置(即Internet Explorer属性),高级,并在树视图中查看安全性和复选框,如“检查已撤销的证书”或其他(我正在使用德语Windows,所以我没有手上的英文标签)。取消选中并再次测试。

如果这解决了问题,那么您有一个不是来自Microsoft的已签名程序集,.NET Framework将检查其是否已撤销,并在15秒后超时。如果您禁用检查或正确配置互联网连接,则无需等待。

答案 2 :(得分:0)

它是以某种方式打开文件还是在网络中进行交互?因为如果没有,我会建议您是否登录到域或以本地用户身份运行可能是一个红色的鲱鱼。

您是在构建调试模式还是发布模式?如果你还没有尝试发布模式是值得的,因为在调试中运行会带来额外的错误检查..

答案 3 :(得分:0)

您是否检查过是否存在可能影响此业务情景的域策略?

答案 4 :(得分:0)

我还有这个问题(.NET 4.5)。我的情况是问题是,计算机没有连接到互联网,但有一些其他设备(相机等)通过GigE连接。每个.NET应用程序的启动都会延迟大约20秒。

解决方案非常简单:只需将计算机连接到互联网,启动任何.NET应用程序(首次启动大约需要7秒),之后,每次启动都非常快,即使计算机不再连接到互联网。此外,我不得不禁用协议TCP / IP V6(导致3-5秒延迟)。

另一种可能的解决方案是为&#34;网际协议版本4(TCP / IPv4)选择属性,然后选择高级,选择选项卡&#34; WINS&#34;并设置&#34;禁用TCP / IP上的NetBIOS&#34;。