我有一個項目,我打了一堆多個服務器上的自定義Windows性能計數器,並將它們聚集到一個數據庫中的網絡訪問。如果服務器關閉,我想跳過它,然後繼續我的一天。快速的方式,如果一臺服務器是在C#中
目前我正在檢查,以查看服務器是否是由活對我有在這個過程中,在以後反正看A股做DirectoryInfo
,然後檢查.Exists
property.This是我當前的代碼片段測試:
DirectoryInfo di = new DirectoryInfo(machine.Share_Path);
if (!di.Exists)
{
log.Warn("Could not access " + machine.Name + "! Maybe its down?");
continue; // Skips to the next server in my loop where this snippet exists.
}
這工作,但它很慢。 di.Exists位完成工作平均需要大約68秒,理想情況下需要在一秒鐘內知道服務器是否可訪問。 Pinging也不是一種選擇,因爲服務器可以是可以ping通的,但不能在我們的環境中「活着」。
我仍然有種新鮮的.NET世界,所以我願意接受任何建議人可以提供。
在此先感謝。
-Weegee
當服務器在那裏,服務器不在時或者兩者都需要68秒? – 2009-11-02 19:42:06
當服務器不在那裏。當服務器在那裏時,它不到一秒鐘。 – Weegee 2009-11-02 19:45:14
怎麼樣在一個單獨的工作線程運行檢查,只是讓它拿但是需要多長時間? – Dolphin 2009-11-02 19:46:53