远程更新多个网站和同一应用程序的数据库

Remote update of multiple websites and DB's of the same application

我开发了一个网络核心应用程序,它是一个 API 从现场的各种设备接收数据的应用程序。 API 在应用程序中有一个小网站来管理 API(所有这些都在 IIS 上)。来自 API 的数据存储在 SQL Server Express DB (2017) 中。在同一台服务器上有一个 WinForms 应用程序,它从数据库中获取数据并创建 CSV 文件并将它们存储在 Web 应用程序的一个文件夹中。这样做是为了 FTP 访问要推送或拉取的 CSV 文件。

客户现在表示他们希望将如上所述的整个应用程序放在迷你 PC 上以放在客户站点上,最终可能会有数百台安装了该应用程序的迷你 PC。我已经在迷你电脑上测试过了,它工作正常。

我想了解的是,如何为所有迷你 PC 远程更新 API/web 应用程序的数据库(一次点击)。我的意思是,如果客户使用上述应用程序部署 10 台迷你 PC,一年后我更新了数据库 table、SPROC 等,并向 API 和网站添加了一个功能,我怎样才能让他们在不进入每台迷你 PC 进行更新的情况下进行自我更新。由于我正在使用 Entity Framework,也许 API/Web 应用程序可以处理数据库。我能处理的Winforms应用

在我看来,API/web 应用程序中有一些东西可以检查是否有更新(类似于 WinForms 应用程序),然后自我更新并刷新 IIS。对于数据库,我也有同样的原则。

我做了一些研究,但找不到任何有意义的做法。

我一直在考虑FTP将新站点连接到所有迷你 PC,但客户站点可能存在防火墙问题,但端口 80 将始终打开。

我很乐意学习任何可以为我做到这一点的技巧或技术。

上述方法的主要问题是迷你电脑的防火墙问题。很少有用户可能会阻止外部连接。 我能想到的简单方法是托管一个普通网站,让每个用户都可以访问它,以便在一个地方使用和维护所有内容。 这将帮助您管理数据库、api 表单或任何其他安全或增强方面的内容。