.net WinForms窗体在一台计算机上启动时挂起

.net WinForms窗体在一台计算机上启动时挂起,.net,vb.net,visual-studio,.net,Vb.net,Visual Studio,对于我的VB.NET应用程序,我使用的是Visual Studio附带的windows安装程序。我可以在办公室的任何计算机上成功安装并运行我的程序,只有一台除外。在这台特定的机器上,我的程序将暂停约30秒,然后才能加载主窗体。当我启动任务管理器时,CPU在0%到1%之间徘徊,所以它除了冻结之外什么都不做。它最终会加载,但真的不应该花这么长时间,特别是当它在其他计算机上立即加载时。现在这台机器是WindowsXP,带有ServerICEPack3和.NET3.5SP1。你们能想出什么会导致这种情况

对于我的VB.NET应用程序,我使用的是Visual Studio附带的windows安装程序。我可以在办公室的任何计算机上成功安装并运行我的程序,只有一台除外。在这台特定的机器上,我的程序将暂停约30秒,然后才能加载主窗体。当我启动任务管理器时,CPU在0%到1%之间徘徊,所以它除了冻结之外什么都不做。它最终会加载,但真的不应该花这么长时间,特别是当它在其他计算机上立即加载时。现在这台机器是WindowsXP,带有ServerICEPack3和.NET3.5SP1。你们能想出什么会导致这种情况吗?

你们可以用它来找出程序在暂停时正在做什么。可能它正在尝试访问一些不可用的网络资源,并且必须等待超时…

您可以使用它来了解程序在暂停时正在执行的操作。可能它正在尝试访问一些不可用的网络资源,并且必须等待超时…

每次加载应用程序时,还是第一次加载时,您都会得到此结果?如果是后者,你也许能把它弄清楚


应用程序是否连接到任何外部资源?例如,数据库或网络共享。如果是,你能测试一下周围的情况吗

您是在每次加载应用程序时,还是在第一次加载时都会得到此结果?如果是后者,你也许能把它弄清楚


应用程序是否连接到任何外部资源?例如,数据库或网络共享。如果是,你能测试一下周围的情况吗

使用Run->services.msc检查问题机器上启动的所有服务是否与所有其他机器上启动的服务相同。这听起来像是一个服务正在相关机器上手动加载,因此延迟会自动加载到其他机器上。如上所述,过程监控的一部分可能非常有用

编辑:你说 在任务管理器中,CPU徘徊在0到1%之间,
这包括内核时间吗?默认情况下,任务管理器不显示内核时间。您必须从菜单栏中选择“查看”,然后从下拉菜单中单击“显示内核时间”。当CPU显示很少或没有活动时,内核活动可能非常重要。

使用Run->services.msc检查所述机器上启动的所有服务是否与所有其他机器上启动的相同。这听起来像是一个服务正在相关机器上手动加载,因此延迟会自动加载到其他机器上。如上所述,过程监控的一部分可能非常有用

编辑:你说 在任务管理器中,CPU徘徊在0到1%之间,
这包括内核时间吗?默认情况下,任务管理器不显示内核时间。您必须从菜单栏中选择“查看”,然后从下拉菜单中单击“显示内核时间”。当CPU显示很少或没有活动时,内核活动可能非常重要。

可能是.NET Framework安装错误?在该计算机上运行程序时会发生这种情况,对吗?那么它与部署无关!主窗体的加载事件处理程序中有什么?实际上没什么,只是检查注册表中的连接字符串,然后连接到SQL Server。我的WinForms应用程序在一台机器上从3秒钟启动到两分钟以上启动,比任何窗口出现都早了两分钟。事实证明,TCP默认网关路由没有设置,因此没有从该机器到网络的默认路由,显然.NET中的某些东西需要连接,也许对于Authenticode证书管理,应用程序没有连接到任何东西。可能是.NET Framework安装错误?在该计算机上运行程序时会发生这种情况,对吗?那么它与部署无关!主窗体的加载事件处理程序中有什么?实际上没什么,只是检查注册表中的连接字符串,然后连接到SQL Server。我的WinForms应用程序在一台机器上从3秒钟启动到两分钟以上启动,比任何窗口出现都早了两分钟。事实证明,TCP默认网关路由没有设置,因此没有从该机器到网络的默认路由,显然.NET中的某些东西需要连接,也许对于Authenticode证书管理,应用程序没有连接到任何东西。好的,我来试一试,看看会发生什么。好的,我来试一试,看看会发生什么。每次加载它时。它在计算机上连接到SQL的本地版本,而不是在网络上。每次加载时。它连接到计算机上而不是网络上的本地版本的SQL。