asp.net एप्लिकेशन पूल 'क्लासिक.NET एपपूल' की सेवा करने वाली एक प्रक्रिया को विंडोज प्रोसेस एक्टिवेशन सर्विस के साथ घातक संचार त्रुटि का सामना करना पड़ा




http iis-7 (4)

मैं Windows Server 2008 पर IIS 7 पर ASP.NET 3.5 वेब एप्लिकेशन चला रहा हूं।

मुझे आज दोपहर बाद निम्न त्रुटि मिली:

HTTP Error 503. The service is unavailable.

मैंने इवेंट लॉग में देखा और पाया कि:

A process serving application pool 'Classic .NET AppPool' suffered a fatal communication error with the Windows Process Activation Service. The process id was '3328'. The data field contains the error number.

यहाँ उस घटना का पूरा विवरण है:

Log Name:      System
Source:        Microsoft-Windows-WAS
Date:          18/09/2009 14:58:31
Event ID:      5011
Task Category: None
Level:         Warning
Keywords:      Classic
User:          N/A
Computer:      computername
Description:
A process serving application pool 'Classic .NET AppPool' suffered a fatal communication error with the Windows Process Activation Service. The process id was '3328'. The data field contains the error number.
Event Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name="Microsoft-Windows-WAS" Guid="{5 .. 0}" EventSourceName="WAS" />
    <EventID Qualifiers="32768">5011</EventID>
    <Version>0</Version>
    <Level>3</Level>
    <Task>0</Task>
    <Opcode>0</Opcode>
    <Keywords>0x80000000000000</Keywords>
    <TimeCreated SystemTime="2009-09-18T13:58:31.000Z" />
    <EventRecordID>23552</EventRecordID>
    <Correlation />
    <Execution ProcessID="0" ThreadID="0" />
    <Channel>System</Channel>
    <Computer>computername</Computer>
    <Security />
  </System>
  <EventData>
    <Data Name="AppPoolID">Classic .NET AppPool</Data>
    <Data Name="ProcessID">3328</Data>
    <Binary>6D000780</Binary>
  </EventData>
</Event>

इसके परिणामस्वरूप:

Application pool 'Classic .NET AppPool' is being automatically disabled due to a series of failures in the process(es) serving that application pool.

यहाँ उस घटना का पूरा विवरण है:

Log Name:      System
Source:        Microsoft-Windows-WAS
Date:          18/09/2009 15:03:05
Event ID:      5002
Task Category: None
Level:         Error
Keywords:      Classic
User:          N/A
Computer:      computername
Description:
Application pool 'Classic .NET AppPool' is being automatically disabled due to a series of failures in the process(es) serving that application pool.
Event Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name="Microsoft-Windows-WAS" Guid="{5 .. 0}" EventSourceName="WAS" />
    <EventID Qualifiers="49152">5002</EventID>
    <Version>0</Version>
    <Level>2</Level>
    <Task>0</Task>
    <Opcode>0</Opcode>
    <Keywords>0x80000000000000</Keywords>
    <TimeCreated SystemTime="2009-09-18T14:03:05.000Z" />
    <EventRecordID>23557</EventRecordID>
    <Correlation />
    <Execution ProcessID="0" ThreadID="0" />
    <Channel>System</Channel>
    <Computer>computername</Computer>
    <Security />
  </System>
  <EventData>
    <Data Name="AppPoolID">Classic .NET AppPool</Data>
    <Binary>
    </Binary>
  </EventData>
</Event>

इसमें शामिल होने: HTTP त्रुटि 503. सेवा अनुपलब्ध है।

क्या कोई मुझे यह पहचानने में मदद करेगा कि यह कैसे हुआ और भविष्य में ऐसा होने से रोकने के लिए मुझे क्या करने की आवश्यकता है।


इसकी सबसे अधिक संभावना एक अनंत लूप के कारण होती है।

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


यह एक बहुत बुरा एक है। मैं IIS डिबग डायग्नोस्टिक्स उपकरण प्राप्त करने की सलाह देता हूं। आप शायद अपने एप्लिकेशन पूल के गुणों में "रैपिड फेल प्रोटेक्शन" को बंद करके लक्षण को कम कर सकते हैं, लेकिन यह समस्या का सामना करेगा। क्या चल रहा है कि आपके एप्लिकेशन को एक अपवाद का सामना करना पड़ रहा है इतनी बार / बार-बार कि सेवा बंद हो जाती है। आपको उस अपवाद को खोजने के लिए और बाहर जाने वाले हर चीज को पकड़ने के लिए डायग्नोस्टिक टूल को चलाना होगा।

यह एक बहुत ही श्रमसाध्य कार्य हो सकता है क्योंकि उपकरण कबाड़ के गीगाबाइट को इकट्ठा करने के लिए इकट्ठा करेगा। यदि आप भाग्यशाली हैं, तो "रैपिड फेल प्रोटेक्शन" को बंद करने से अपवाद ब्राउज़र के माध्यम से आगे बढ़ने की अनुमति मिल सकती है, लेकिन मेरा अनुमान है कि सर्वर बस लटका हुआ होगा।


यदि आप NServiceBus का उपयोग कर रहे हैं, तो सुनिश्चित करें कि एप्लिकेशन पूल के तहत जो भी खाता चल रहा है, उसे संदेश कतार से पढ़ने की अनुमति है।

NServiceBus एप्लिकेशन स्टार्टअप पर एक पृष्ठभूमि कार्य चलाता है जो 10 सेकंड के बाद टाइमआउट करता है, जिससे w3wp प्रक्रिया को मारा जा सकता है यदि यह कतार से नहीं पढ़ सकता है। N (5 का डिफ़ॉल्ट) के बाद w3wp रैपिड-फेल प्रोटेक्शन को क्रैश कर देता है और एप्लिकेशन पूल को बंद कर देता है।

http://blog.jonathanoliver.com/2010/11/nservicebus-w3wp-exe-processes-crashing/


मैं बस नीचे ट्रैक और एक ही बुरा समस्या तय की। कुछ चीजें जो समस्या का कारण बन सकती हैं:

  • एक Server.Transfer () लूप
  • CurrentThread.Abort () को कुछ परिदृश्यों में कॉल करना .. (जैसे Server.Transfer () के बाद)!

उन चीजों को ठीक करना जो हमारे लिए तय है।





http-status-code-503