如何使RD Web为多个用户运行VB6 EXE和DLL?

问题描述 投票:6回答:1

我们在所有客户的本地C驱动器上安装了VB6程序,以及相关的VB6 DLL程序。该程序是在我90年代之前写的。它的设计目的不是要在服务器上运行,也不是为了允许多个用户同时访问同一个EXE,因此不能将它放在每个人的C驱动器上。但是,它的所有正在运行的会话都通过ODBC引用不同SQL Server上的同一数据库源。数据库连接正常。

好吧,现在所有人都可以远程工作(Covid19),在没有本地安装EXE / DLL的计算机上(混合了他们的个人笔记本电脑,服务器,台式机,移动设备,您都可以!)。

[Today],我们的客户都在家里工作,并且正在通过RD Web迁移到虚拟服务器。只要他们运行此EXE和相关的DLL,就只有第一个运行它的人has it。所有其他用户都得到一个VB6违规错误,并且程序崩溃。

DLL在Computer\HKEY_CLASSES_ROOT\Computer\HKEY_LOCAL_MACHINE\SOFTWARE\中都注册了,但没有在LOCAL_USER中注册,我认为对于使它成为服务器环境中的多用户程序是必需的。

转换应用程序不是一种选择,因为我们没有VB6编译器。我们是否需要将DLL包装在RD-WEB服务器中的“某物”中(是的,服务器上仅存在该程序的一个副本)?

任何有关如何使该旧版程序为多个用户运行的想法,都值得赞赏。

谢谢

web dll vb6 remote-desktop rdp
1个回答
0
投票

尝试在每个用户文件夹(例如主文件夹和指向这些HOME目录的快捷方式)中安装/复制VB程序和相关DLL。如果程序运行,则应该以相同的方式更新数据库。有时,大多数解决方法都很简单。如果他们需要不同的锁定的DLL工作空间,则给他们提供(以后可能会遇到内存问题)

请看这里https://stackoverflow.com/a/345154/12011019

https://docs.microsoft.com/en-us/archive/msdn-magazine/2005/april/simplify-app-deployment-with-clickonce-and-registration-free-com

某些DLL并非设计为共享的,并且不重新编程就无法修改此行为。有进程内和进程外(线程)DLL。否则可能会有许多其他问题。如果它不起作用,则设计不允许。

https://support.microsoft.com/en-au/help/911359/a-client-application-may-intermittently-receive-an-error-message-when

在系统范围内使用的共享DLL没有此限制,因为它们被设计为可被许多应用程序使用。请尝试对此行为发表评论。

© www.soinside.com 2019 - 2024. All rights reserved.