上一回介绍了如何通过WMI接口监控服务器性能,但服务器运行正常不等于运行的网站能正常打开,因此还有必要对网站的运行情况进行监控。
在C#中,发起一个HTTP请求并返回其响应是非常简单的。
1 HttpWebRequest request = WebRequest.Create(uri) as HttpWebRequest; 2 HttpWebResponse response = request.GetResponse() as HttpWebResponse; 3 bool result = response.StatusCode == HttpStatusCode.OK; 4 response.Close(); 5 return result;
如果result返回true,那么就可以认为网站能正常访问。
然而,有不少网站是需要用户登录的,比如本人平时维护的各类内部网站都是跟windows域用户绑定,实现单点登录。这样就需要用到CredentialCache类。
CredentialCache类存储多个Internet 资源的凭据。需要访问多个资源的应用程序可将这些资源的凭据存储在 CredentialCache 实例中,该实例在需要时向Internet资源提供适当的凭据集。
因此我们创建一个CredentialCache对象,并将该对象赋给HttpWebRequest.Credentials属性。
1 CredentialCache credentialCache = new CredentialCache(); 2 credentialCache.Add(new Uri(url), "NTLM", new NetworkCredential(userName, password, domain)); 3 request.Credentials = credentialCache;
这样就能模拟用户向网站发起请求并返回其响应了。