0

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

4

3 回答 3

1

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

于 2012-07-18T10:06:29.953 回答
1

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

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

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

于 2012-07-18T10:08:41.307 回答
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

于 2012-07-18T10:07:35.170 回答