一个很好的广播机制来.网应用程序来宣布他们的位置并版本吗?
-
10-07-2019 - |
题
我谨提供大量的电.净的应用轻型方式宣布他们正在使用。我的目标是跟踪用户的可能受益于支持检查程序和/或提醒升级。
这是一个内部网络。肯定是IP之间的连接所有的机器,并可能UDP。(但可能不多播。)
写到一个已知的内部分或载入一个已知的URL会的可能性,但我想到的影响最小化的应用程序本身尽可能完整的,甚至不惜牺牲的可靠性。所以我不想危险的超时(例如,如果我访问的一些集中资源,它已经消失了),和理想情况下,我将不启动一线工作人员。
它还将是漂亮的许多听众,这是另一个原因,我想到的是关于广播的而不是援引一项服务。
是有某种防火和忘记广播机构,我可以使用安全和有效地为这个?
解决方案
有这个肯定很多选择,而且是一个很容易实现并满足您的条件是的异步Web服务呼叫。
这并不需要你开始工作线程(框架会做幕后)。而不是使用在该链路中概述的选项中的一个来获取的结果,简单地忽略该结果,因为它是没有意义的主叫应用程序。
其他提示
我做了类似的事情,但不完全是 “braodcast”
我在公司使用内部工具的几个非技术人员有。我有它检查特定的EXE网络共享,并比较与执行组件文件的版本号(如果你想使用它,你会下载相同的EXE)。如果网络上的一个较新,提醒用户以下载新的。
不是试图建立一个自动更新的东西,只会在同一建筑物内作为我简单多了。
如果升级不是一个问题(即不存在的情况下使用旧版本的比较好),你可以做什么我做了类似的事情:
这是人们的实际启动的应用是一个更新程序,它会检查文件版本和时间戳在网络共享,如果有新版本出现,将其复制到程序目录。然后,它运行程序(它是否被更新或者不是)。
var current = new FileInfo(local);
var latest = new FileInfo(remote);
if (!current.Exists)
latest.CopyTo(local);
var currentVersion = FileVersionInfo.GetVersionInfo(local);
var latestVersion = FileVersionInfo.GetVersionInfo(remote);
if (latest.CreationTime > current.CreationTime || latestVersion.FileVersion != currentVersion.FileVersion)
latest.CopyTo(local, true);
Process.Start(local)
我也有程序本身检查,看看是否更新程序需要更新(如更新器不能将其自身由于文件锁更新)
不隶属于 StackOverflow