public void Remove(MonitorConfig MonitorConfig)
 {
     BaseRemove(MonitorConfig.Uri);
 }
Exemple #2
0
        // 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);
 }