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