取代客户端PC上正在打开的服务器端.net应用程序

本文关键字:服务器端 net 应用程序 客户端 PC 取代 | 更新日期: 2023-09-27 18:02:59

我们有一些Vb。网络应用程序在我们公司内部使用。这些将托管在我们的windows server 2012中,并将从网络中的所有客户端机器(windows xp,7和8)访问。当我们构建新版本的应用程序时,我们将通过将旧的exe文件重命名为Application1_Old.exe来替换服务器中现有的exe文件,并将新文件放在Application1.exe的名称中。通常它允许重命名文件,即使在客户端PC打开应用程序。一旦用户关闭应用程序并重新打开它,就会获得新功能。因此,我们在客户端打开。exe时替换它们。

所以Windows服务器将允许重命名从网络或本地打开的vb.net exe/dll文件。此功能仅适用于windows服务器。

问题案例:但有时这将不允许重命名某些文件。但如果我们尝试有时对同一个文件,它将允许。此错误不是特定于文件的,也不是常规的。当出现此错误时,我们必须关闭OpenFiles中应用程序的现有连接,然后进行重命名。

我不知道这个问题什么时候会出现,什么时候不会出现。以前通过我的观察,我发现如果任何exe文件在任何windows7 PC上打开,那么它将不允许在服务器中重命名。所以我们只关闭了从那台电脑打开的连接。它允许之后重命名。

后来我们把一些个人电脑升级到windows 8。升级后这个问题的案例数量增加了。我觉得它只与windows7或windows8有关,但不确定。某些功能可能在win XP中默认启用,但在Windows 7及以上版本中可能禁用。我也得到了类似"当客户端锁定文件句柄时,我们无法重命名文件"的信息。但正如我之前所说,从过去几年我们就能做到这一点。这怎么可能呢?有人面临同样的问题吗?如何解决此问题?现在无法替换文件的原因是什么?

取代客户端PC上正在打开的服务器端.net应用程序

当可执行文件在客户机上运行时,您可以重命名它,我对此并不感到惊讶。不推荐使用这种方式部署应用程序。

您应该了解一下clickonce部署。这允许您部署到web服务器或文件共享。然后客户端在本地安装应用程序,因此无论是否有人使用您的应用程序,您都可以执行更新。

这个之前问的问题与你的类似:当用户正在运行EXE文件时,我们如何覆盖它们?

作为最后的尝试,你可能还想看看InUse.exe "为个人和管理员提供了"即时"功能来替换当前正在被操作系统使用的文件"