【问题标题】:C# WinForms application runs slow from mapped network drive over VPNC# WinForms 应用程序通过 VPN 从映射的网络驱动器运行缓慢
【发布时间】:2018-09-05 15:36:22
【问题描述】:

我们有一个位于服务器上的 Winforms 应用程序。
换句话说,人们通过指向 Intranet 上的可执行文件的快捷方式启动应用程序。到目前为止,这种方法从未出现任何性能问题。

问题在于,通过 VPN,应用程序加载速度极慢。
仅显示主窗体需要 1 分 40 秒。
Load 和 Show 事件中主窗体中的所有代码都被禁用以测试性能,并且仅加载窗体仍然需要很长时间。
映射目录也设置为受 Windows 信任。

问题是什么会导致 VPN 加载缓慢?
在我看来,只加载没有任何代码的主表单已经很慢了。

该应用程序使用 DevExpress,因此有很多 DLL 需要加载。会不会是这个问题的原因?

我知道这对 SO 来说不是一个好问题,但我需要一些想法来寻找这个问题的方向。

我在这里找到了this 问题,但问题是由于他们的代码中的错误,所以它对我没有帮助

【问题讨论】:

  • 应用程序必须在启动时下载 exe 和所有 DLL,这就是它运行缓慢的原因。
  • 为什么不将应用程序部署为 ClickOnce?当应用程序第一次运行时,它会很慢,因为应用程序会下载,安装在 Users[user]\AppData 文件夹中。从那时起,只要应用程序尚未重新部署,它就会在检查网络部署版本后从本地副本运行。要测试您当前的问题,请从本地计算机和非 VPN 网络共享运行应用程序,然后比较启动速度。我认为问题出在您的 VPN 上,因为它必须加密从您的网络服务器传来的所有流量,然后在本地解密
  • @HandbagCrab 我以前从未使用过ClickOnce所以我想我必须开始阅读这个
  • 设置和管理非常简单。使用项目属性上的发布选项卡。我设置了它,使它只能在线使用,并且必须从 setup.exe 启动(它将在您的 VPN 网络上)。
  • @HandbagCrab 我现在已将其设置为 ClickOnce 应用程序,这解决了我的问题,也使更新变得容易。如果你写这个作为答案,我会接受它

标签: c# winforms performance


【解决方案1】:

将应用程序部署为 ClickOnce。当应用程序第一次运行时,它会很慢,因为应用程序会下载,然后安装在 Users[user]\AppData 文件夹中。从那时起,只要应用程序尚未重新部署,它就会在检查网络部署版本后从本地副本运行。

您可以选择让应用程序在本地安装,这样它就有一个开始菜单条目,并且可以通过添加/删除程序来删除,或者您可以让它只在网上可用,这意味着没有开始菜单条目,它应该从setup.exe(我假设这是您想要使用的选项,因此您的用户仍然从 VPN 网络位置启动它。

【讨论】:

    猜你喜欢
    • 2016-10-18
    • 2013-05-26
    • 1970-01-01
    • 2015-05-03
    • 1970-01-01
    • 2010-11-28
    • 1970-01-01
    • 1970-01-01
    • 2017-07-19
    相关资源
    最近更新 更多