我在同一网络中连接的两台Windows机器上有一个WPF应用程序。这两个系统用于冗余目的。 最初,machine1上的应用程序一直在运行。当machine1因任何原因而关闭时,我想在machine2上启动应用程序。 两台机器上的应用程序如何检查彼此的心跳?当另一台机器上没有心跳时,如何启动另一台机器上的应用程序?
1)应用程序从一个Web服务获取信息,并每隔x分钟将其发送到另一个Web服务。信息流不会暂停非常重要。通常,机器必须更新以进行维护,否则可能会断开连接或意外关闭。在那种情况下,我想让另一台机器准备好同时运行该应用程序。
2)除了这两台机器,我没有其他机器来运行SQL Server。
答案 0 :(得分:1)
@ user2347528,我可以提供一些方向。虽然答案和你的问题一样好。你能提供更多信息:
可能的解决方案:
1.在两台机器上启动应用程序。很容易。
2.让应用程序在某个数据库表中设置日期值+ machinename(或纯文本文件,或任何用于目的的方法)
3.创建一个名为AppLive的表
CREATE TABLE [dbo].[AppLive](
[MachineName] nvarchar NOT NULL,
[Ping] [datetime] NOT NULL
CONSTRAINT [PK_dbo.AppLive] PRIMARY KEY CLUSTERED
(
[MachineName] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
4.如果应用程序在某台计算机上处于活动状态,请检查一些数据库表(或纯文本文件,或用于某种目的的任何方法)。如果是这样,请将应用程序设置为“等待”模式,如果未在“实时”模式下设置应用程序。