public void Remove(MonitorConfig MonitorConfig) { BaseRemove(MonitorConfig.Uri); }
// http://msdn.microsoft.com/en-us/library/system.net.webrequest.aspx protected static HealthResponse GetWebsiteHealth(MonitorConfig config) { string responseFromServer; bool isHealthy; var statusCode = 0; try { Logger.DebugFormat("Checking {0}...", config.Uri); // Create a request for the URL. var request = WebRequest.Create(config.Uri); request.Timeout = config.Timeout; // If required by the server, set the credentials. request.Credentials = CredentialCache.DefaultCredentials; // Get the response. var response = (HttpWebResponse)request.GetResponse(); statusCode = (int)response.StatusCode; Logger.DebugFormat("Status code = {0}", statusCode); // Get the stream containing content returned by the server. var dataStream = response.GetResponseStream(); // Open the stream using a StreamReader for easy access. var reader = new StreamReader(dataStream); // Read the content. responseFromServer = reader.ReadToEnd(); Logger.DebugFormat("Response from server: {0}", responseFromServer); // Cleanup the streams and the response. reader.Close(); dataStream.Close(); response.Close(); var responseContainsCorrectValue = true; var statusesMatch = statusCode == config.StatusCode; // If "Contains" was set in the config, verify that it is in the response if (!string.IsNullOrWhiteSpace(config.Contains)) { responseContainsCorrectValue = responseFromServer.Contains(config.Contains); } isHealthy = statusesMatch && responseContainsCorrectValue; } catch (Exception ex) { isHealthy = false; responseFromServer = ex.ToString(); } return new HealthResponse { Uri = config.Uri, IsHealthy = isHealthy, Response = responseFromServer, StatusCode = statusCode }; }
public void Add(MonitorConfig MonitorConfig) { BaseAdd(MonitorConfig); }