7

इस कोड है कि प्रदर्शन काउंटर बनाता है:PerformanceCounter.NextValue() फेंकता InvalidOperationException

var ftpPerfCounter = new PerformanceCounter("FTP Service", "Current Connections", "_Total"); 

यह जहां अपवाद होता है:

:

int cnt = (int)Math.Round(ftpPerfCounter.NextValue()); 

यहाँ Exception संदेश है

"त्रुटि संदेश: निर्दिष्ट श्रेणी के लिए काउंटर लेआउट अमान्य है, प्रकार का एक काउंटर: औसत काउंटर 64, औसत टाइमर 32, काउंटरमल्टी टिमर, काउंटरमल्टी टिमर इनवर्क्स, काउंटरमल्टी टिमर 100 एनएस, काउंटरमल्टी टिमर 100 एनसवर्क्स, रॉफ्रैक्शन, या नमूना फ्रैक्शन को तुरंत बेस काउंटर प्रकारों में से किसी एक का पालन करना होगा: औसतबेस, काउंटरमुल्टीबेस, रॉबेस या नमूनाबेस। "

त्रुटि संदेश बहुत गुप्त है। मुझे यकीन नहीं है कि भविष्य में अपवाद से बचने के लिए क्या किया जा सकता है।

विवरण

यह Windows Server 2008 R2 64-बिट ऑपरेटिंग सिस्टम पर होता है। एफ़टीपी सर्वर आईआईएस है।

उत्तर

1

मैं आईआईएस मेरे पीसी पर स्थापित की जरूरत नहीं है, लेकिन अगर मैंने किया था, यहाँ मैं क्या कोशिश करेंगे:

  1. प्रयास से खींचें और ड्रॉप द्वारा WMI के लिए दृश्य स्टूडियो के कोड जनरेटर का उपयोग करने के सर्वर एक्सप्लोरर जेनरेट कोड का निरीक्षण करें और देखें कि क्या आपके कोड से कोई अंतर है या नहीं।
  2. अपवाद को फेंकने के लिए परावर्तक का उपयोग करें, बीसीएल के अंदर एक कस्टम ब्रेकपॉइंट सेट करें, और पुन: पेश करें। फिर कॉल स्टैक सामग्री का विश्लेषण करें और संदिग्ध कोड पथ या अप्रत्याशित स्थिति की तलाश करें।
0

ऐसा लगता है कि वे एक ही समस्या हल कर चुके हैं here। शायद आपको आधार काउंटर स्थापित करना होगा?

2

कम से कम मेरे विंडोज सर्वर 2008 आर 2 पर आईआईएस 7.5 के साथ प्रदर्शन काउंटर श्रेणी को "माइक्रोसॉफ्ट एफ़टीपी सेवा" नहीं कहा जाता है "एफ़टीपी सेवा"। शायद यह विभिन्न ओएस/आईआईएस संस्करणों के लिए अलग है, लेकिन इसकी जांच करना आसान है।

अपने लक्ष्य सर्वर/मशीन पर:

  1. रन "प्रदर्शन मॉनिटर"
  2. पर क्लिक करें "बाएं पैन में प्रदर्शन मॉनिटर
  3. प्लस आइकन एक प्रदर्शन काउंटर
  4. स्क्रॉल जोड़े के लिए क्लिक करें उपलब्ध काउंटर की सूची नीचे। यह देखने के लिए एफ़टीपी या माइक्रोसॉफ्ट एफ़टीपी की तलाश करें ... नोट करें कि यदि आपके पास माइक्रोसॉफ्ट एफ़टीपी सेवाओं को स्थापित नहीं किया गया है तो आपको प्रदर्शन काउंटर नहीं दिखाई देगा।
  5. मिला, इसे चुनें, और आप विशिष्ट काउंटर उदाहरणों की एक सूची देखेंगे जो आप पूछ सकते हैं। उन उदाहरणों में से एक '_Total' है जिसमें आप रुचि रखते थे।

बेशक यह भी साबित करता है कि प्रदर्शन काउंटर आपके कोड से स्वतंत्र रूप से काम करता है। यह जानना एक अच्छी बात है!

Performance Counters in C#/.NET see this stackoverflow post के साथ काम करने के तरीके के विशिष्ट सर्वोत्तम अभ्यासों के लिए।