如何在页面加载时ping服务器?

时间:2014-12-02 09:29:58

标签: c# asp.net

我打开页面时需要ping 12台服务器ips。我试过这个(1 ip):

public int sisup;
public void Page_Load(object sender, EventArgs e)
{
    Ping p = new Ping();
    PingReply r;

    String s = "10.1.1.1";

    r = p.Send(s); 
    Response.Buffer = false;
    if (r.Status == IPStatus.Success)
    {
        sisup = 1;
    }
    else
    {
        sisup = 0;
    }
}

用sisup做点什么。它工作正常,但速度很慢。由于ping,页面加载需要几秒钟。如果没有页面加载,我怎么能这样做?页面加载后我可以这样做吗?或者ping的任何建议?我只需要服务器上升或下降,并做一些事情。

或许我可以设置ping响应时间。它是本地网络,响应时间仅1-2毫秒。我认为ping等待回复这么久。

1 个答案:

答案 0 :(得分:2)

您应该考虑使用Parallel.For

Parallel.For(0, 12, i =>
{
    // ping each server
});

这样所有ping都会并行运行,你的响应时间会低10倍左右。

或者你可以使用jQuery在页面加载后ping,以进行AJAX调用。

$.ajax("PingServer.url")
.done(function() {
    alert("success");
})
.fail(function() {
    alert("error");
});

这项工作要多一点,但这样做会更好。