在asp.net mvc中测试互联网连接

时间:2014-11-21 11:58:13

标签: c# asp.net-mvc asp.net-mvc-4

我目前正在制作一个返回不同结果的信息中心。其中一个是三个网站的状态和当前的互联网连接。我最初使用knockout.js ping每个站点,但我发现了一个更好的方法。现在我只是使用ajax调用mvc控制器来恢复我需要的结果。

[HttpPost]
    public JsonResult webSiteAvailable(string url)
    {



        try
        {
            var result = false;
            HttpWebRequest httpReq = (HttpWebRequest)WebRequest.Create(url);
            System.Diagnostics.Stopwatch timer = new Stopwatch();
            timer.Start();

            httpReq.AllowAutoRedirect = false;
            httpReq.Proxy.Credentials = CredentialCache.DefaultCredentials;
            HttpWebResponse httpRes = (HttpWebResponse)httpReq.GetResponse();
            timer.Stop();
            TimeSpan timeTaken = timer.Elapsed;

            if (httpRes.StatusCode == HttpStatusCode.NotFound)
            {
                result = false;
            }

            else
            {
                result = true;
            }


            return Json(new { status = result, code = httpRes.StatusDescription.ToString(), time = timeTaken.TotalMilliseconds.ToString() });
        }
        catch (WebException ex)
        {
            return Json(new { status = false, code = ex.Message.ToString() });
        }
        catch (Exception ex)
        {
            return Json(new { status = false, code = ex.Message.ToString() });
        }


    }

所以我的问题是,有没有更好的方法来测试互联网连接?我知道检查www.google.co.uk响应是否确实测试了连接,但必须有更好的方法来执行此操作。感谢您的任何建议。

0 个答案:

没有答案