如何ping在iis中部署的网站/ ip

时间:2012-07-18 10:02:55

标签: c# asp.net ping

我需要建立一个网站,旨在监控/检查部署在iis上的内部应用程序的连接性,它就像我们开发的内部网站的链接列表。问题是,我如何能够检查网站是否正常运行?以及如何检查网站是否已关闭?我将简单地显示我们系统的链接,并根据它们的状态对其进行着色,绿色为up,如果是向下或有错误则为红色..希望得到您的建议。样品代码将不胜感激。

3 个答案:

答案 0 :(得分:1)

只需从该服务器加载任何内容,如果它加载您的网站已启动并正在运行,如果它没有加载,则只会生成错误或显示红色

答案 1 :(得分:1)

最简单的方法是运行Windows服务或计划任务,根据网站列表执行WebRequests并检查状态代码。

如果返回状态代码200,则显示绿色。其他任何东西(4xx,5xx,超时),显示红色。让服务将结果存储在数据库中,并从该数据库中读取“红绿”页面。

这将是一种通用的,一刀切的解决方案。它可能不适用于所有站点,因为某些站点可能具有基本身份验证,在这种情况下,您的监视器将错误地记录该站点已关闭。因此,您需要针对站点存储元数据并执行基本身份验证(或任何其他业务逻辑),以确定它是上升还是下降。

答案 2 :(得分:0)

如果您可以访问要监控的网站,那么我认为最简单的方法是在您要监控的网站上设置状态页,以便您的服务进行轮询。这样,如果网站启动,您可以通过阅读页面内容从中获取更高级的状态信息。

如果你只是想查看http状态,那么只需访问网站上的任何页面(最好是小页面!)并查看响应状态代码。

这样的东西
                // prepare the web page we will be asking for
                HttpWebRequest request = (HttpWebRequest)
                    WebRequest.Create(Url);
                //if (AuthRequired())
                //    request.Credentials = new NetworkCredential(Username, Password);
                // execute the request
                HttpWebResponse response = (HttpWebResponse)request.GetResponse();

然后你可以阅读response.StatusCode