如果有人遇到同樣的問題,請添加此項。這是我在上面評論中使用鏈接後的解決方案。
foreach (var ip in ipAddressList)
{
HttpWebResponse myHttpWebResponse = null;
try
{
var myUri = new Uri(ip.Url);
// Create a 'HttpWebRequest' object for the specified url.
var myHttpWebRequest = (HttpWebRequest)WebRequest.Create(myUri);
// Set the user agent as if we were a web browser
myHttpWebRequest.UserAgent = @"Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.4) Gecko/20060508 Firefox/1.5.0.4";
myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse();
// Release resources of response object.
myHttpWebResponse.Close();
}
catch (WebException ex)
{
// If we get here, port is not open, or host is not reachable
UpdateDowntime(ip, ex.Message);
}
finally
{
if (myHttpWebResponse != null)
{
myHttpWebResponse.Close();
}
}
}
內UpdateDowntime(),我加載服務結果到數據庫時的URL是無法訪問所以這可以被報告,並創建一個任務計劃程序任務此運行每5分鐘。它還會在服務關閉時發送電子郵件。告訴哪些服務停機,什麼時候響應錯誤和響應錯誤。
我的最終結果將是使用SSRS作報告時主管需要知道的多種不同的方案指標時,事情去了,多長時間,如果他們是在黃金時間下來,等等等等
希望這可以幫助別人,如果他們發現相同的問題。
您只是測試機器是否可以接受TCP連接,而不是Web服務器是否能夠處理請求。如果TCP連接不起作用,則Web服務器無法返回503不可用的響應。 – 2014-10-30 14:19:43
好的,那麼正常運行時間監視器上的這些內容與TcpClient和捕獲503錯誤的效率更高有關? http://stackoverflow.com/questions/10107305/httpwebrequest-error-503-server-unavailable – 2014-10-30 14:24:34
我不知道「更有效」,但根據該鏈接發送HTTP請求會告訴你Web服務器是否能夠處理請求是。 – 2014-10-30 14:28:22