में एप्लिकेशन पूल अपटाइम प्राप्त करें क्या कोई तरीका है कि मैं निर्धारित कर सकता हूं कि सी # में एक एप्लिकेशन पूल (आईआईएस 7 में) कितना समय लगा है (शुरू होने के बाद से समय, या अंतिम पुनरारंभ)।सी #
सी #
उत्तर
सच बेवकूफ चाल मिलना चाहिए: कुछ वर्ग है कि सब कुछ का उपयोग करता है, करने के लिए एक वर्ग के निर्माता का उपयोग अपना प्रारंभ समय याद रखें और इसे प्राप्त करने के लिए एएसपीएक्स पेज का उपयोग करें। अब वर्तमान समय की तुलना करें।
कक्षा के निर्माता द्वारा आपका मतलब 'स्थिर' कन्स्ट्रक्टर है?चूंकि स्थैतिक कन्स्ट्रक्टर वह है जो आप इसके साथ करना चाहते हैं, मैंने कभी सोचा नहीं है कि आप इस तरह से कुछ हासिल करने के लिए एक स्थिर निर्माता का कितना आसानी से उपयोग कर सकते हैं। –
आईएल में हाँ वर्ग कन्स्ट्रक्टर = सी # में स्थिर कन्स्ट्रक्टर। – Joshua
ऐपडॉमेन को पुनर्नवीनीकरण (web.config बदलें) बिना ऐप पूल रीसाइक्लिंग किए जा सकते हैं (w3wp.exe प्रक्रिया)। यह स्थैतिक कन्स्ट्रक्टर केवल नवीनतम एपडोमेन को पुनरारंभ करेगा। यदि आपको वास्तव में ऐप पूल प्रक्रिया प्रारंभ समय की आवश्यकता है तो प्रक्रिया जानकारी उत्तर (@EricHumphrey) का उपयोग करें। – yzorg
ASP.NET अनुप्रयोग से, आप कोशिश कर सकते हैं TimeSpan uptime = (DateTime.Now - ProcessInfo.GetCurrentProcessInfo().StartTime)
आप Restarting (Recycling) an Application Pool और http://forums.iis.net/t/1162615.aspx मसले हैं, तो आप यह
DateTime.Now -। Process.GetCurrentProcess() StartTime
Process.GetCurrentProcessInfo() मौजूद नहीं है।
दिलचस्प बात यह है कि यह एक एप्लिकेशन को पुनरारंभ करता है, इसलिए मुझे यकीन नहीं है कि यह कितना सटीक है। –
यदि आप पाते हैं कि Process.GetCurrentProcessInfo() का उल्लेख अन्य उपयोगकर्ता के रूप में मौजूद नहीं है,
System.Diagnostics.Process.GetCurrentProcess().StartTime
आप के लिए काम कर सकते हैं।
(मैं एरिक हम्फ्रे की पोस्ट के लिए एक टिप्पणी के रूप में जोड़ना चाहता था, लेकिन मैं अनुमति नहीं कर रहा हूँ)
ऊपर के आधार पर मैं बहुत की तरह एक साधारण श्रेणी का निर्माण ..
public static class UptimeMonitor
{
static DateTime StartTime { get; set; }
static UptimeMonitor()
{
StartTime = DateTime.Now;
}
public static int UpTimeSeconds
{
get { return (int)Math.Round((DateTime.Now - StartTime).TotalSeconds,0); }
}
}
और कहा जाता है जैसे
var temp = UptimeMonitor.UpTimeSeconds;
यह तो कहीं का उपयोग कर पहुँचा जा सकता है Global.asax.cs में Application_Start() में यह
UptimeMonitor.UpTimeSeconds
दो दृष्टिकोणों में से एक मौजूद है जिसका मैं व्यक्तिगत रूप से उपयोग करता हूं। एक स्थिर वर्ग का उपयोग करना (जैसा कि @ Original10 के उत्तर में दिखाया गया है) या Application
चर का उपयोग करना।
मुझे पता चला है कि Application
चर का उपयोग स्वीकार्य है क्योंकि मैंने देखा है कि Process.GetCurrentProcess()
एप्लिकेशन पुनरारंभ (जैसे web.config या bin निर्देशिका का संशोधन) से बचता है। मुझे कुछ ऐसी चीज चाहिए जो वेबसाइट को को फिर से शुरू करने के लिए को पूरा करेगी।
अपने Global.asax में, अपने कोड जहां आपको उसकी आवश्यकता में
public void Application_Start(Object sender, EventArgs e)
{
...
Application["ApplicationStartTime"] = DateTime.Now.ToString("o");
}
के लिए निम्न जोड़ने के लिए, आप की तरह कुछ कर सकता है:
var appStartTime = DateTime.MinValue;
var appStartTimeValue = Web.HttpCurrent.Application["ApplicationStartTime"].ToString();
DateTime.TryParseExact(appStartTimeValue, "o", null, Globalization.DateTimeStyles.None, Out appStartTime);
var uptime = (DateTime.Now - appStartTime).TotalSeconds
var lsOutput = $"Application has been running since {appStartTime:o} - {uptime:n0} seconds."
कौन सा की तर्ज पर कुछ का उत्पादन करेगा
Application has been running since 2018-02-16T10:00:56.4370974+00:00 - 10,166 seconds.
आवेदन चर के किसी भी जांच की जांच नहीं है या आवेदन की लॉकिंग की आवश्यकता नहीं है घ। मैं इसे उपयोगकर्ता के लिए एक अभ्यास के रूप में छोड़ दूंगा।
- 1. सी/सी ++/जावा/सी #
- 2. सी #, सी/सी ++ या ऑब्जेक्टिव-सी
- 3. सी/सी ++
- 4. सी/सी ++
- 5. सी/सी ++
- 6. सी/सी ++
- 7. सी/सी ++
- 8. सी/सी ++
- 9. सी/सी ++
- 10. सी/सी ++
- 11. सी/सी ++
- 12. सी/सी ++
- 13. सी/सी ++
- 14. सी/सी ++
- 15. सी/सी ++
- 16. सी/सी ++
- 17. सी/सी ++
- 18. सी/सी ++
- 19. सी/सी ++
- 20. सी/सी ++
- 21. सी/सी ++
- 22. सी/सी ++
- 23. सी/सी ++
- 24. सी/सी ++
- 25. सी/सी ++
- 26. सी/सी ++
- 27. सी/सी ++
- 28. सी/सी ++
- 29. सी/सी ++
- 30. सी/सी ++
बाहरी रूप से, या आपके एएसपी.NET ऐप के भीतर? –
बाहरी रूप से। मैं माइक्रोसॉफ्ट.Web.Administration.AplicationPool के साथ खेल रहा है, लेकिन मुझे समय तक कुछ भी नहीं दिख रहा है। – JPero