को संशोधित करने के अलावा asp.net अनुप्रयोग को पुनः आरंभ करने वहाँ आवेदन अंदर से web.config को छू के अलावा एक asp.net अनुप्रयोग बाउंस करने के लिए एक सिफारिश रास्ता नहीं है? HttpRuntime.UnloadAppDomain()
है; ऐसा करने का पसंदीदा तरीका? और यदि ऐसा है तो आप यह कहां करते हैं? किसी पृष्ठ या एप्लिकेशन में किसी अन्य स्थान के अनलोड में?कैसे web.config
उत्तर
इस .NET 2.0 या अधिक से अधिक है, तो आप एक "App_offline.htm" फ़ाइल में जोड़ सकते हैं, सर्वर से अनुरोध करते हैं, इसे हटाने, और फिर सर्वर से एक और अनुरोध करते हैं।
घटनाओं के रूप में लंबे समय तक app_offline.htm फ़ाइल के रूप में फ़ोल्डर में मौजूद है के लिए आवेदन अनलोड करने के लिए ASP.NET के लिए बाध्य करेगा का यह क्रम।
स्कॉट गुथरी का उस पर ब्लॉग प्रविष्टि: http://weblogs.asp.net/scottgu/archive/2005/10/06/426755.aspx
आप बंद करो और आवेदन पूल रूप में अच्छी तरह ऐप्स के साथ संबद्ध शुरू कर सकते हैं।
लेकिन यह आईआईएस अधिकार से है। कुछ मामलों में मुझे आईआईएस बॉक्स तक पहुंच नहीं हो सकती है, इसलिए मैं कुछ प्रोग्रामिक ढूंढ रहा हूं। – MikeJ
आप डब्लूएमआई का उपयोग कर एप्लिकेशन पूल रीसायकल कर सकते हैं: http://blogs.iis.net/chrisad/archive/2006/08/30/Recycling- अनुप्रयोग- पुल-using- WMI-in-IIS-6.0.aspx – Portman
ठंडा। मुझे नहीं पता था कि – MikeJ
एक आवेदन के अंदर से छूना web.config IMO एक बुरा विचार है। साथ ही, आपके द्वारा संशोधित फ़ाइल रखने का विचार थोड़ा हैकनी, आईएमओ है।
प्रलेखन विशेष रूप से कहा गया है कि UnloadAppDomain
एप्लिकेशन बंद हो जाएगा:
UnloadAppDomain अप्रयुक्त अनुप्रयोगों के कार्यक्रम संबंधी शटडाउन अनुमति देता है।
आपको इस कॉल को एप्लिकेशन में कहीं भी सक्षम करने में सक्षम होना चाहिए। ध्यान रहे, आप एक SecurityException
मिल सकता है, तो यह सुनिश्चित करें कि क्रम उपयुक्त अनुमतियां देता है (यदि आप सबूत के साथ GAC में एक पुस्तकालय में इस डाल करने के लिए और एक फोन करना और उसके बाद पुस्तकालय की स्थापना की यह पूर्ण विश्वास देने के लिए चाहते हो सकता है बनाने के)।
हां काम करने के लिए आपको फ़ाइल को भौतिक रूप से जोड़ने और निकालने की आवश्यकता होगी। यही कारण है कि मैं पूछ रहा था। web.config संशोधन बदसूरत लग रहा था और हमें thedailyWTF.com पर लिखे जाने की संभावना है :) – MikeJ
मुझे लगता है कि उद्धरण के लिए एक बेहतर पंक्ति होगी: "वर्तमान एप्लिकेशन को समाप्त करता है। आवेदन अगली बार इसके लिए अनुरोध प्राप्त होता है।" उस उद्धरण में "अप्रयुक्त" भाग को पढ़ा जा सकता है "अगर कोई इसका उपयोग नहीं कर रहा है तो केवल बंद हो जाएगा", जो मामला नहीं है। –
सिस्टम का उपयोग करें। Web.HttpRuntime.UnloadAppDomain() –
आप बंद करो और एप्लिकेशन पूल आप हमेशा यह रीसायकल कर सकते हैं शुरू करने के लिए नहीं करना चाहते हैं।
आप फोन करके ऐसा कर सकते हैं HttpRuntime.ShutdownAppDomain विधि (आप, यह आह्वान करने के लिए प्रतिबिंब का उपयोग करना होगा क्योंकि यह एक निजी स्थिर विधि है)
मैं कैसे का एक उदाहरण के लिए How to restart an IIS Worker Process programmatically (i.e. shutdown the current ASP.NET Domain) देखें एक 'पुनः प्रारंभ' REST API में इस विधि का उपयोग
आप सुरक्षित रूप से बनाने या आवेदन निर्देशिका के अंतर्गत रन टाइम पर एक फ़ोल्डर का नाम बदलकर एक वेब अनुप्रयोग को पुनः आरंभ कर सकते हैं। जाहिर है आप वेब निर्देशिका करने के लिए या इसके नीचे एक उप निर्देशिका के अधिकार आवेदन चलाने के लिए "संशोधित" सौंपा उपयोगकर्ता देने के लिए की जरूरत है।
विधि http://www.bartlannoeye.be/blog/restarting-a-.net-web-application-without-restarting-iis
में उल्लेख किया है मैं मेरे मामले में यह करने के लिए निम्नलिखित कोड का इस्तेमाल किया। इसे "लिखने योग्य" उप-निर्देशिका
protected void RestartButton_Click(object sender, EventArgs e)
{
//restart web app (instead of iisreset)
DirectoryInfo dir = new DirectoryInfo(Server.MapPath("restart"));
if (dir.Exists)
{
Directory.Move(dir.FullName, dir.FullName + "ed");
}
else
{
DirectoryInfo dired = new DirectoryInfo(Server.MapPath("restarted"));
if (dired.Exists)
{
Directory.Move(dired.FullName, dir.FullName);
}
else
{
Directory.CreateDirectory(dir.FullName);
}
}
}
अच्छी तरह से यह मेरे लिए काम नहीं करता है। मैं निर्देशिका बनाई जा रही है लेकिन application_Start घटना पर कॉल नहीं किया गया है! – KMX
कि बार्ट लैनोई लिंक मृत लगता है – brennanyoung
पर यह काम करने के लिए संशोधित करें यह कोड मेरे लिए काम करता है। बस इसे पुनः लोड करने के लिए कॉल करें।
System.Web.HttpRuntime.UnloadAppDomain();
इस विधि हमारे आवेदन उतारना होगा।यदि आप इस विधि को एएसपी.नेट वेब बटन में डालते हैं तो आप पूरी तरह से कर चुके हैं। तो हमारे आवेदन को फिर से लोड कब किया जाएगा? दरअसल यदि आप अपने बटन पर क्लिक करते हैं तो यह पहले हमारी विधि लॉन्च करेगा और एप्लिकेशन को अनलोड करेगा। वेब पेज पर आगे हम उस पल पर भी पुनः लोड हो जाएंगे, क्योंकि हमने अभी एक बटन क्लिक किया है और वेब पेज को रीफ्रेश करना चाहिए। हमारी विधि लॉन्च करने के बाद पेज रीफ्रेश प्रक्रिया हमारे एप्लिकेशन को फिर से लोड करने का कारण बन जाएगी।
अच्छी तरह से काम करने लगता है, और निश्चित रूप से यहां दिया गया सबसे सरल समाधान! –
- 1. कैसे Web.Config
- 2. कैसे web.config
- 3. कैसे Web.config
- 4. web.config
- 5. web.config
- 6. web.config
- 7. Web.config
- 8. web.config
- 9. web.config
- 10. web.config
- 11. web.config
- 12. web.config
- 13. web.config
- 14. web.config
- 15. Web.config
- 16. web.config
- 17. Web.config
- 18. web.config कैसे विभाजित करें?
- 19. मैं कैसे web.config
- 20. xdt web.config
- 21. Web.Config, system.serviceModel
- 22. web.config urlmapping
- 23. एमवीसी web.config
- 24. अभी web.config
- 25. कस्टम व्यवहार मेरे web.config
- 26. मैं web.config विरासत
- 27. ASP.NET/Web.config: customErrors 404
- 28. web.config सेक्शन रनटाइम को कैसे संशोधित करें?
- 29. कैसे web.config फ़ाइल में &/& के लिए
- 30. मध्यम ट्रस्ट में Web.Config को कैसे लिखें?
htis सिर्फ सिस्टम को ऑफ़लाइन लेता है। मैं इसे स्वच्छ कैश/सत्र और इसी तरह के साथ पुनरारंभ/पुनः लोड करना चाहता हूं। जब मैं app_offline.htm को हटा देता हूं तो यह डिफ़ॉल्ट रूप से इसे वापस लाएगा? – MikeJ
@ माइकजे - नहीं। यह ऐप को बंद कर देता है और फ़ाइल को हटाए जाने तक सर्वर से ऐप डोमेन को अनलोड करता है। –
@ माइकजे - कृपया ध्यान दें कि यह एक प्रोग्रामेटिक परिवर्तन नहीं है। –