我正在寻找一种方法来检查服务器是否仍然可用.我们有一个离线应用程序,可以在服务器上保存数据,但如果服务器连接断开(偶尔会发生),我们必须将数据保存到本地数据库而不是在线数据库.所以我们需要继续检查服务器是否仍然可用.
我们在这个应用程序中使用C#
对它的检查sqlconnection.open
实际上不是一个选项,因为在抛出错误之前需要大约20秒,我们不能等待这么长时间+我也在使用一些http服务.
只需使用System.Net.NetworkInformation.Ping类.如果您的服务器没有响应ping(由于某种原因您决定阻止ICMP Echo请求),您将必须为此创建自己的服务.就个人而言,我完全没有阻止ICMP Echo请求,我认为这是要走的路.ping命令已经使用了很长时间来检查主机的可达性.
using System.Net.NetworkInformation; var ping = new Ping(); var reply = ping.Send("google.com", 60 * 1000); // 1 minute time out (in ms) // or... reply = ping.Send(new IPAddress(new byte[]{127,0,0,1}), 3000);