2009-09-29 11 views
12

हम अपने क्यूए लैब में एक अजीब पैटर्न देख रहे हैं। हमारे पास दो एएसपी.NET अनुप्रयोग हैं, प्रत्येक एक ही विंडोज 2008 एसपी 2 + बॉक्स पर तैनात हैं। हमारे पास एक ऐप पूल डोमेन खाते में चल रहा है, और फिर कभी चक्र नहीं चला है। वही 1 ऐप पूल दोनों अनुप्रयोगों द्वारा उपयोग किया जाता है।एएसपी.नेट आवेदन 500.21 तक जाता है ... जब तक आईआईएस रीसेट + साफ़ टेम्पोरी एएसपी.नेट कैश

ठीक चलने के कई घंटों के बाद, हमारे आवेदन में किसी पृष्ठ पर सर्फ करने वाले नए उपयोगकर्ता 500.21 त्रुटि के साथ आईआईएस 7 त्रुटि पृष्ठ प्राप्त करते हैं।

हम लेकिन कुछ नहीं करते हैं: \ Microsoft.NET \ Framework64 \ v2.0.50727 \ अस्थायी ASP.NET फ़ाइलें और "तृतीय" 2 अनुप्रयोगों \ Windows:

1) IISRESET 2) सी के लिए फ़ोल्डर बदलें ।

और फिर हमारे वेब अनुप्रयोगों में सर्फ करें, सब ठीक है।

फिर कई घंटे बाद, 500.21 त्रुटियां वापस आती हैं।

मुझे अजीब तरह से हमला करता है "अस्थायी एएसपी.नेट फाइल" फ़ोल्डर्स और समस्या दूर होने के बीच प्रतीत होता है। मेरे आवेदन के नए संस्करण को स्थापित करते समय मेरे पास "अस्थायी एएसपी.NET फ़ाइलें" फ़ोल्डर्स को साफ़ करने का अभ्यास है, लेकिन अन्यथा नहीं।

क्या यह रिश्ता किसी से परिचित है? क्या यहां काम पर कुछ नई-आईएसआई आईआईएस 7 सुविधा है? त्रुटि के

पाठ:

आवेदन में सर्वर त्रुटि "डिफ़ॉल्ट वेब साइट/पेस"
इंटरनेट सूचना सेवा 7.0
त्रुटि सारांश
HTTP त्रुटि 500.21 - आंतरिक सर्वर त्रुटि
हैंडलर "PageHandlerFactory-एकीकृत" इसकी मॉड्यूल सूची में एक खराब मॉड्यूल "प्रबंधित पाइपलाइन हैंडलर"
विस्तृत त्रुटि जानकारी
मॉड्यूल आईआईएस वेब कोर
अधिसूचना ExecuteRequ estHandler
हैंडलर PageHandlerFactory-एकीकृत
त्रुटि कोड 0x8007000d
अनुरोधित URL http://localhost:80/PAIS/Admin.aspx

शारीरिक पथ C: \ 0_Georgia \ GA_IS_100142 \ PortfolioArchiveImageServer \ Admin.aspx
लॉग ऑन विधि बेनामी
लॉग ऑन उपयोगकर्ता बेनामी
सबसे अधिक संभावना का कारण बनता है :
• एएसपी.नेट स्थापित नहीं है या अपूर्ण रूप से स्थापित है।
• एक कॉन्फ़िगरेशन टाइपोग्राफ़िकल त्रुटि हुई।
• प्रतिकूल प्री-कंडीशन मूल्यांकन मौजूद है।
जिन चीजों को आप आजमा सकते हैं:
• यदि प्रबंधित पाइपलाइन हैंडलर गुम है, तो सुनिश्चित करें कि:
o ManagedEngine है।
ओ प्रबंधित पाइपलाइन हैंडलर सही पूर्व-स्थितियों के साथ है।
• एएसपी.नेट स्थापित करें।
• सुनिश्चित करें कि सभी system.webServer/[email protected] system.webServer/[email protected] में हैं।
• और अनुभागों में पूर्व-स्थितियों की समीक्षा करें।
लिंक और अधिक जानकारी आईआईएस कोर मॉड्यूल को पहचान नहीं पाता है।
देखें अधिक जानकारी »पहले से

धन्यवाद,

हावर्ड हॉफमैन

+1

आप त्रुटि पृष्ठ का पूरा पाठ पोस्ट कर सकते हैं? – David

+0

इसके अलावा, मैं यह देखने के लिए कि क्या आप समस्या को कम कर सकते हैं, मैं प्रत्येक एप्लिकेशन को अपने ऐपपूल में विभाजित कर दूंगा। – David

+0

कृपया ध्यान दें कि हमने डेविड की सलाह ली और 2 पूल में विभाजित हो गए। मैं ऐप पूल को फिर से साइकिल चला सकता हूं, * इसके बजाय * IISReset चलाने के लिए * अस्थायी एएसपी.NET फ़ाइलें गैजी फ़ोल्डर को हटाने, यह भी समस्या को सुधारने के लिए प्रतीत होता है। सवाल अभी भी है ... क्यों? –

उत्तर

9

हमें एमएस एएसपी.NET समर्थन की सहायता के साथ वास्तविक समस्या मिली। यह बहुत सूक्ष्म है। मुझे लगता है कि एमएस ने कहा है कि वे ऐप फैब्रिक रिलीज (जो अब आरटीएम है) पर एक फॉलो पर इस मुद्दे को ठीक करेंगे। उंगलियों को पार कर।

समस्या लगातार इस परिदृश्य में होता है:

1) ASP.NET वेब आवेदन अभी भी नहीं चल। इसमें डब्ल्यूसीएफ नेट.पिप और/या नेट टीसीपी बाइंडिंग शामिल हैं। मुझे लगता है कि यह NetMsmq के लिए भी होगा लेकिन कोशिश नहीं की।

2) एक इनबाउंड नेटपाइप या नेटटीसीपी डब्ल्यूसीएफ विंडोज सक्रियण सेवा अनुरोध प्रारंभिक अनुरोध है जो ऐप डोमेन शुरू करता है।

3) आवेदन एक 'एकीकृत' आईआईएस अनुप्रयोग पूल (IIS7 का उपयोग करता है या 7.5 IIS)

4) अनुप्रयोग है कि 1 अनुरोध के दौरान HttpServerUtility.Execute उपयोग करता है।

यह पता चला है कि हमारा आवेदन पहले डब्लूसीएफ ऑपरेशन के दौरान एएसपी.नेट स्वास्थ्य निगरानी कार्यक्रम को फायर कर रहा था - यह ऑपरेशन जिसने विंडोज एक्टिवेशन सर्विस (डब्ल्यूएएस) को अपना आवेदन शुरू करने के लिए प्रेरित किया था। हमारे स्वास्थ्य निगरानी विन्यास में टेम्पलेटेडमेलवेबवेन्टप्रोवाइडर शामिल है।

हमारा एप्लिकेशन एक 'एकीकृत' आईआईएस ऐप पूल का उपयोग कर रहा है।

TemplatedMailWebEventProvider HTML संदेश के रूप में एक ईमेल संदेश निकाय बनाने के लिए लागू किया गया है। यह System.Web.HttpServerUtility.Execute(string, TextWriter, Boolean) अधिभार का उपयोग करता है।

इस उपयोग के मामले में अधिभार गलत काम करता है - यह 'क्लासिक' आईआईएस ऐप पूल आधारित HTTP पाइपलाइन शुरू करता है। चूंकि यह 'एकीकृत' आईआईएस ऐप पूल के लिए गलत पाइपलाइन है, इसलिए अगले HTTP अनुरोध के साथ पाइपलाइन दूषित हो जाती है - जो वास्तव में पहला इनबाउंड HTTP अनुरोध है।

तो आपको सभी भावी HTTP अनुरोधों के लिए 500.21 त्रुटि मिलती है जब तक कि एप्लिकेशन फिर से साइकिल नहीं हो जाता। आपको IISRESET के अपेक्षाकृत कठोर कदमों को निष्पादित करने की आवश्यकता नहीं है, त्रुटि को साफ़ करने के लिए अस्थायी ASP.NET कैश साफ़ करना - बस web.config को सहेजकर ऐप को पुनरारंभ करें और त्रुटि का कारण बनने वाले विशेष स्टार्टअप पथ से बचें।

एमएस ने हमारे लिए एक कामकाज का सुझाव दिया - TemplatedMailWebEventProvider के बजाय SimpleMailWebEventProvider का उपयोग करें। यह काम करता है, क्योंकि यह HttpServerUtility लेता है। पहले अनुरोध के लिए कोड पथ से बाहर निकलें।

मुझे सुझाव दिया गया कि एमएस एक नया वेब पेश करे।कॉन्फ़िगर <system.web> बूलियन सेटिंग - UseIntegrated - कि एप्लिकेशन को प्रारंभ करने के लिए टाइप ऐप पूल निर्दिष्ट करें। स्पष्ट रूप से आईआईएस ऐप पूल प्रकार को एएसपी.नेट पर अग्रेषित नहीं करता है, इसलिए मेरा सुझाव पर पर काम करता है।

TemplatedMailWebEvent प्रदाता SimpleMailWebEventProvider से अधिक उपयोगकर्ता के अनुकूल है, और हमें उम्मीद है कि एमएस इस मुद्दे को संबोधित करेगा।

सब पढ़ने के लिए धन्यवाद,

हावर्ड हॉफमैन

+0

मुझे उमर अहमद के जवाब को +1 करना है क्योंकि यह मेरी समस्या को हल करता है ... – enguerran

+0

मुझे लगता है कि AFAIK माइक्रोसॉफ्ट ने मूल कारण को कभी संबोधित नहीं किया। वे सिस्टम सेंटर और संबंधित प्रौद्योगिकियों में निवेश के पक्ष में एएसपी.नेट स्वास्थ्य निगरानी से आगे बढ़े हैं। विंडोज सर्वर 2012 में समस्या अभी भी है - विंडोज सर्वर 2016 की जांच नहीं की है - और अभी भी काम काम करता है। –

-1

समस्या अधिक होने की संभावना आवेदन कोड में है। अस्थायी ASP.NET फ़ाइलें फ़ोल्डर में आपके ऐप की पूर्व-संकलित प्रतियां होती हैं और एप्लिकेशन फ़ाइलों तक पहुंचने पर हर बार रीफ्रेश हो जाएगी। आप \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ फ़ोल्डर में aspnet_compiler.exe के साथ इन फ़ाइलों को पूर्व-संकलित कर सकते हैं। आप जिस त्रुटि को प्राप्त कर रहे हैं उसके बारे में अधिक जानकारी के लिए आतंकवादी विकल्प का उपयोग करें। लंबे समय तक चलने वाले अनुप्रयोग जो रीसायकल नहीं करते हैं, वे समस्याओं में भाग लेंगे यदि वे बहुत मेमोरी का उपयोग करते हैं या एक इनप्रोक सत्र स्थिति में बड़ी मात्रा में डेटा बनाए रखते हैं। यदि आपके सत्र में बड़ी मात्रा में जानकारी है, तो SQL सर्वर-आधारित सत्र प्रबंधक का उपयोग करने पर विचार करें।

+0

हमने वास्तव में यह निर्धारित किया था कि समस्या 'System.Web.HttpServerUtility.Execute (स्ट्रिंग, टेक्स्टवाइटर, बूलियन)' अधिभार - वास्तव में है। चूंकि ओवरलोड को कॉल करने के समय कोई HTTP पाइपलाइन नहीं है, इसलिए यह रनटाइम को दूषित करता है। यह एक माइक्रोसॉफ्ट मुद्दा है। उन्होंने इसकी पुष्टि की। मेरी इच्छा है कि वे इसे ठीक भी करेंगे ... लेकिन 'SimpleMailWebEventProvider' एक काम है। –

19

एक ही समस्या का सामना करें और सुधार सत्यापित आसान था।

1) ओपन विजुअल स्टूडियो 2010 कमांड प्रॉम्प्ट।

2) के रूप में नीचे
enter image description here में दिखाया गया आदेश aspnet_regiis.exe -i

+0

क्या आप "aspnet_regiis.exe -i" के बारे में कोई स्पष्टीकरण जोड़ सकते हैं? – enguerran

+1

यह आईआईएस पर एएसपी.नेट स्थापित करता है। मुझे यह समस्या थी क्योंकि आईआईएस से पहले मेरी मशीन पर नेट 4 स्थापित किया गया था। मुझे अपनी मशीन पर एएसपी.NET काम करने के लिए यह आदेश चलाने के लिए था। –

+0

धन्यवाद। यह मेरी समस्या हल हो गया। –

0

1. IIS 7 एक अपवाद फेंकता भागो

2. प्रशासक मोड में खोलें दृश्य स्टूडियो 2010 कमांड प्रॉम्प्ट और निष्पादित करें aspnet_regiis.exe -i
enter image description here

3. समस्या, फिक्स्ड नीचे के रूप में ASP.Net आवेदन और ASP.Net MCV आवेदन सुचारू रूप से चल रहे हैं दिखाया गया है।
enter image description here

+0

अच्छा काम स्पष्ट रूप से आपके समाधान को दस्तावेज करता है। '500.19' त्रुटि को हल करने के कई तरीके हैं। आपका समाधान हमारी विशेष समस्या का इलाज नहीं था। हमारी विशेष समस्या केवल स्वीकृत उत्तर के चरणों का पालन करके हल की गई थी। –

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