2009-07-06 67 views
20

我的WPF应用程序当前只显示一个带有一些控件的屏幕,它没有连接到数据库或具有任何其他功能。这是一个简单的用户界面屏幕。启动时WPF应用程序运行缓慢

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

我抓住了一台类似的电脑,只安装了Windows,应用程序花了2秒启动。

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

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

我一直在检查Improving WPF applications startup time但我的问题似乎需要一种不同的方法。有没有人知道会发生什么?

+0

怎么样您部署到您的测试机器,您使用ClickOnce? – Oskar 2009-07-06 12:56:02

+0

我只部署复制.EXE和WPFToolkit.dll到一个文件夹我已经尝试在GAC中安装.DLL,但结果是相同的 – 2009-07-06 13:36:35

+3

这不仅是WPF应用程序可能会受到这种影响,它是任何.Net应用程序加载代码签名/ Authenticode程序集(与强名称签名不同) – 2011-04-21 20:21:29

回答

18

我在此documentation from Microsoft中发现了另一个解决此问题的解决方案。

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

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

这样,你不需要更改计算机配置。这只是应用程序的配置。

UPDATE:
似乎.NET 4.0修复了这个问题,因为在MSDN文档here

0

它打开文件或以某种方式在网络中进行交互?因为如果没有,我建议不管你是登录到域还是作为本地用户运行,都可能是一条红鲱鱼。

您是在调试模式还是释放模式?如果您尚未尝试释放模式,则值得尝试,因为在调试中运行时会执行额外的错误检查。

+0

应用程序不以任何方式与网络或数据库交互,它只是简单地我打开一个窗体,里面有一些控件发布模式。谢谢。 – 2009-07-06 12:39:21

0

您是否检查过是否有可影响此场景的域策略?

+0

我目前正在寻找,但仍找不到任何... – 2009-07-06 13:38:33

12

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

如果这样可以解决问题,那么您有一个签名程序集不是来自Microsoft,.NET Framework将针对该程序集检查撤销,并在15秒后超时。如果您禁用检查或正确配置Internet连接,则无需等待。

0

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

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

另一种可能的解决方案是选择“Internet协议版本4(TCP/IPv4)的,再选择高级,选择选项卡‘WINS’,并设置‘禁用NetBIOS通过TCP/IP’属性。

相关问题