2010-02-18 11 views
6

हमारे पास एक प्रणाली है जहां हम आईआईएस में कुछ डब्ल्यूसीएफ अनुप्रयोगों की मेजबानी करते हैं। इनमें से कुछ अनुप्रयोगों में कुछ सेकेंड लगने वाले विस्तारित स्टार्ट-अप समय का थोड़ा सा हिस्सा है (उपयोगकर्ताओं के लिए प्रतीक्षा करने में खुशी होगी)। एक बार यह ऊपर और चलने के बाद, सबकुछ घबरा गया है, इसलिए यह वास्तव में केवल स्टार्टअप समय है।कैसे करें: IIS होस्ट किए गए डब्ल्यूसीएफ अनुप्रयोगों के साथ शीत-प्रारंभ समस्याओं से बचें?

ग्राहक को भी हर रात एप्लिकेशन पूल रीसायकल करने की आवश्यकता होती है।

क्या इन सभी सेवाओं को उठाने का कोई तरीका है ताकि स्टार्ट-अप समय सिस्टम के पहले उपयोगकर्ता के लिए कोई मुद्दा न हो?

शुरुआती विचार जहां एक विंडोज सेवा लिखनी है जो प्रत्येक सेवा पर प्रत्येक लाइट (कॉन्फ़िगर करने योग्य) मिनटों को जीवित रखने के लिए बस एक हल्के तरीके से कॉल करेगा, लेकिन चूंकि हम लोड संतुलित वातावरण में हैं, और अनुप्रयोगों को विशिष्ट होस्ट की आवश्यकता है हेडर को पारित किया जाना है, हम हमेशा लोड बैलेंस एड्रेस को हिट करेंगे जिसका मतलब है कि क्लस्टर में सभी बक्से पर सभी सेवाओं को वास्तव में शुरू करने के लिए कोई रास्ता नहीं है।

चूंकि आईआईएस में एक एकल डब्ल्यूसीएफ एप्लिकेशन में केवल एक होस्ट हेडर हो सकता है, एकमात्र अन्य तरीका एक ही आईआईएस वेबसाइट को उसी एप्लिकेशन पर इंगित करना होगा। मुझे यकीन नहीं है कि क्या यह चाल चलती है क्योंकि यह किसी अन्य होस्ट संदर्भ में होगी।

एक और विकल्प आईआईएस के विस्तार की तरह कुछ लिखने के लिए हो सकता है (सुनिश्चित नहीं है कि यह अभी तक संभव है) जो आईआईएस या ऐप पूल वास्तव में फिर से शुरू होने पर हमारी प्रत्येक सेवा को कॉल कर सकता है। (कुछ ही ऐप्लिकेशन पूल पुनर्नवीनीकरण है देखती है लेकिन पहले उपयोगकर्ता के अनुरोध से पहले।

कोई भी विचार बहुत सराहना होगी।

धन्यवाद

Gineer

+1

आईआईएस 7 में एप्लिकेशन वार्मअप या इसी तरह की एक विशेषता है। –

उत्तर

2

हम में से उन लोगों के 7.5 से पहले आईआईएस के एक संस्करण पर चलने के लिए, हम निम्नलिखित समाधान का परीक्षण की प्रक्रिया में हैं ...

मूल पोस्ट में उल्लेख किया है, प्रारंभिक विचार था प्रत्येक मशीन पर चलने वाली सेवा से स्थानीय वेब साइटों (जो डब्ल्यूसीएफ सेवाओं की मेजबानी करता है) से एक वेबरक्वेट को आग लगाना, लेकिन यह असंभव होगा, क्योंकि वे सभी होस्ट हेडर का उपयोग करते हैं, और वे सभी नेटवर्क लोड संतुलित खेत में रहते हैं ।

हमने सोचा कि हम बस स्थानीय अनुरोध के लिए वेब अनुरोध में कस्टम होस्ट हेडर प्रदान कर सकते हैं।

बाहर निकलता है कि आप WebRequest में होस्ट हेडर नाम अपडेट नहीं कर सकते हैं। यह केवल एक फ़ील्ड पढ़ें।

प्रॉक्सी क्लास के साथ मेसिंग हालांकि यह काम करता है। देखें: http://social.msdn.microsoft.com/forums/en-US/netfxnetcom/thread/1b35c665-fe32-4433-8877-a62f2d400a8e/

और सी # में नीचे मेरे परीक्षण कोड का एक छोटा टुकड़ा।

 WebRequest req = WebRequest.Create("<Correct Host name>"); 
     req.Proxy = new WebProxy("127.0.0.1"); 

     StreamReader stream = new StreamReader(
      req.GetResponse().GetResponseStream()); 

     StringBuilder sb = new StringBuilder(); 

     String LineString; 

     while ((LineString = stream.ReadLine()) != null) 
     { 
      if (LineString.Length > 0) 
       sb.Append(LineString); 
     } 
     stream.Close(); 

     String response = sb.ToString(); 

यह प्रॉक्सी वर्ग का इरादा नहीं हो सकता है, लेकिन ऐसा लगता है कि यह किसी भी तरह से काम करता है।

गिनेर

Ps। नहीं, आपको स्थानीय होस्ट मशीन पर कोई वास्तविक प्रॉक्सी सर्वर स्थापित करने की आवश्यकता नहीं है।

3

बहुत बढ़िया। धन्यवाद Dercsár

एक त्वरित Google के बाद, मुझे विषय पर निम्नलिखित आर्कटिकल मिला: Using the IIS Application Warm-Up Module

यहां सीमाएं हैं कि यह केवल आईआईएस 7.5 के साथ विंडोज 2008 आर 2 पर उपलब्ध है। यद्यपि हमारा ग्राहक विन 2K8R2 में अपग्रेड करने की प्रक्रिया में है, फिर भी यह कुछ समय हो सकता है।

क्या किसी को ऐसे समाधान के बारे में पता है जो विंडोज 2003 के लिए आईआईएस 6 के साथ काम करेगा या क्या हमें यह काम करने के लिए कुछ लिखना होगा?

Gineer

संबंधित मुद्दे

 संबंधित मुद्दे