【发布时间】: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