2010-08-06 9 views
9

के कारण त्रुटियों का निवारण कैसे कर सकते हैं "एक मौजूदा कनेक्शन जबरन बंद कर दिया गया था" हमारे पास आईआईएस में होस्ट किए गए हमारे मध्यम स्तर के साथ "मानक" तीन स्तरीय आर्किटेक्चर है और नेट रीमोटिंग के माध्यम से पहुंचाया गया है। ये त्रुटियां हमारे वेब और वेब सेवा सर्वर (फ्रंट स्तरीय) के बीच होती हैं जो ऐप सर्वर (मध्यम स्तर) को रीमोट कर रही हैं। दिन में ~ 130 के कुल कॉलों में से हमें दिन में 3-10 बार यह त्रुटि मिल जाएगी।हम सिस्को सीएसएस

अपवाद और स्टैक ट्रेस हमेशा कुछ ऐसा दिखाई:


Exception Type: System.Net.WebException 
Message: The underlying connection was closed: An unexpected error occurred on a receive. 

Server stack trace: 
    at System.Runtime.Remoting.Channels.Http.HttpClientTransportSink.ProcessResponseException(WebException webException, HttpWebResponse& response) 
    at System.Runtime.Remoting.Channels.Http.HttpClientTransportSink.ProcessMessage(IMessage msg, ITransportHeaders requestHeaders, Stream requestStream, ITransportHeaders& responseHeaders, Stream& responseStream) 
    at System.Runtime.Remoting.Channels.BinaryClientFormatterSink.SyncProcessMessage(IMessage msg) 

Exception rethrown at [0]: 
    at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg) 
    at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type) 
    at XXXXX.BusinessFacade.Interface.XXXXInterface.SubmitXXXX(
    at XXX.XXXXWebServicesLibrary.XXXXService.CreateXXXXXX.RunXXXXMethod() 
    at XXX.XXXXWebServicesLibrary.XXXXService.XXXXXXMethod`2.RunMethod() 
    at XXX.XXXXWebServicesLibrary.XXXXXWebMethod`2.Run()HandleReturnMessage() 
Inner Exception: 

Exception Type: System.IO.IOException 
Message: Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host. 
    at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size) 
    at System.Net.PooledStream.Read(Byte[] buffer, Int32 offset, Int32 size) 
    at System.Net.Connection.SyncRead(HttpWebRequest request, Boolean userRetrievedStream, Boolean probeRead)Read() 
Inner Exception: 

Exception Type: System.Net.Sockets.SocketException 
Message: An existing connection was forcibly closed by the remote host 
    at System.Net.Sockets.Socket.Receive(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags) 
    at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)Receive() 

की कोई खास दूरस्थ कॉल ऐसा करने का कारण बनता है कि है, यह उनमें से किसी को हो सकता है जो बाहर शासन करने के लिए लगता है किसी भी प्रकार के आवेदन विशिष्ट कारण। एकमात्र आम संप्रदाय "अपवाद प्रकार: System.Net.Sockets.SocketException संदेश: एक मौजूदा कनेक्शन को रिमोट होस्ट द्वारा जबरन बंद कर दिया गया था" त्रुटि त्रुटि का हिस्सा।

फ्रंट और मध्यम स्तर फ़ायरवॉल से अलग होते हैं और हम वीआईपी डिवाइस का भी उपयोग कर रहे हैं। मुझे दृढ़ता से हमारे नेटवर्क/फ़ायरवॉल कॉन्फ़िगरेशन के साथ कोई समस्या संदेह है, लेकिन हमारे नेटवर्क लोग सिर्फ अपने सिर खरोंच कर रहे हैं और कोई सुझाव नहीं दे रहे हैं।

हालांकि 0.003% विफलता दर महत्वहीन प्रतीत हो सकती है, हमारे पास ऐसे सहयोगी हैं जो हमारे संचार की बहुत सावधानीपूर्वक जांच करते हैं और मैं बस इसके लिए एक समस्या बनने का इंतजार कर रहा हूं। मैं उस समय आने पर "मुझे नहीं जानता" कहना नहीं चाहता।

क्या किसी के पास कोई विचार है कि मैं अपने नेटवर्क लोगों को यह समाधान प्राप्त करने के लिए कैसे अधिक जानकारी या कोई सुझाव दे सकता हूं?

+0

अपवाद होने पर आईआईएस रीसाइक्लिंग में एपडोमेन है? – rene

+0

मैं कैसे कह सकता हूं? – JohnOpincar

+0

आईआईएस वर्कर प्रक्रिया कुछ कारणों से रीसायकल कर सकती है: आजीवन पहुंचा (मिनटों में), अनुरोधों की संख्या तक पहुंच गई, स्मृति सीमा तक पहुंच गई। आईआईएस -पूल-कॉन्फ़िगरेशन के आधार पर यह "सामान्य" रिकलीक्लिंग के लिए है। यदि यह असामान्य कारण के लिए रीसायकल करता है, तो आपके पास इवेंट लॉग होना चाहिए: सिस्टम> W3SVC | चेतावनी: एक आवेदन सेवा अनुप्रयोग 'xxx' की प्रक्रिया एक घातक communica का सामना करना पड़ा tion ... आईआईएस 7 के लिए स्रोत 'WAS' नहीं 'W3SVC' है। – JoeBilly

उत्तर

6

समस्या सिस्को सीएसएस था। हमने स्तरीय 1 सर्वर को सीधे टायर 2 सर्वर पर इंगित करके और समस्या को देखे बिना 48 घंटों तक इंगित करके इसे निर्धारित किया। एक बार जब हमने यह निर्धारित किया कि यह सीएसएस था, तो हमने इस पैरामीटर के लिए बेहद कम डिफ़ॉल्ट मान समायोजित करके इस समस्या को सही किया:

"टीसीपी या यूडीपी पोर्ट के लिए सेकंड में डिफ़ॉल्ट प्रवाह निष्क्रियता समय समाप्ति।यदि प्रवाह समय सीमा में निर्दिष्ट समय के लिए निष्क्रिय है, तो सीएसएस प्रवाह को कम करता है और प्रवाह संसाधनों को पुनः प्राप्त करता है। "

हम इसे 84 (जो 84 16-सेकंड की वृद्धि है) पर सेट करते हैं। HTTP के लिए डिफ़ॉल्ट रख-रखाव 120 सेकंड है, डिफ़ॉल्ट मान बहुत कम था।

2

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

आप वर्तमान रीसाइक्लिंग नियमों को हटा सकते हैं और उस समय एक रीसाइक्लिंग सेट कर सकते हैं जहां कोई कनेक्शन अपेक्षित नहीं है, जैसे रात में 3.00। फिर देखें कि अपवाद स्टिल होते हैं या नहीं।

+1

डिफ़ॉल्ट रीसाइक्लिंग नियम जगह पर हैं (1740 मिनट)। वहां विवरण के आधार पर, मुझे नहीं लगता कि यह कैसे समस्या होगी क्योंकि "सामान्य" रीसाइक्लिंग केवल निष्क्रिय कार्यकर्ता प्रक्रियाओं पर होती है और कनेक्शन कार्यकर्ता प्रक्रियाओं से बंधे नहीं होते हैं। – JohnOpincar

2

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

अन्य चीजें हैं जो यह हो सकता है कारण हो सकता है:

  • टाइमआउट, बढ़ती टाइमआउट मानों
  • बहुत बड़ी संदेश आकार का प्रयास करें, संदेश के आकार में वृद्धि की अनुमति दी, यह भी अनुरोध का आकार कोशिश आईआईएस
  • में अनुमति आप, कुछ अधिकतम मूल्य से टकराने जा सकता है अधिकतम कॉल जैसे या अधिकतम कनेक्शन देखें: http://msdn.microsoft.com/en-us/library/ee377061(v=bts.10).aspx
+0

वे सभी अच्छे सुझाव हैं। दुर्भाग्यवश, हमने अपने "परीक्षण" पर्यावरण में लोड परीक्षण किए हैं जो इस समस्या को पुन: उत्पन्न किए बिना हमारे उत्पादन मात्रा से कहीं अधिक है। हम डब्ल्यूसीएफ का उपयोग नहीं कर रहे हैं, इसलिए आपके द्वारा उल्लिखित कॉन्फ़िगरेशन विकल्प प्रासंगिक नहीं हैं। मैंने आईआईएस लॉग में संदेश आकार की जांच की है जब हमें यह विफलता मिली है और यह बिल्कुल बड़ा नहीं है। मैं शायद आपको कल सुबह बकाया राशि दूंगा यदि किसी और ने उत्तर दिया है तो वे बिंदु बर्बाद नहीं हो जाते हैं। :) – JohnOpincar

+0

आप किस फ़ायरवॉल और वीआईपी डिवाइस का उपयोग कर रहे हैं? –

+0

यह पता चला है कि सिस्को सीएसएस के साथ हमारी समस्या थी जो हमारे सामने और मध्यम स्तर के बीच संतुलन लोड करने के लिए थी। जब हमने प्रत्येक फ्रंट स्तरीय सर्वर को सीधे मध्यम स्तर के सर्वर पर इंगित किया, तो हमें अब यह समस्या नहीं थी। मैं अधिक जानकारी पोस्ट करूंगा क्योंकि यह उपलब्ध हो जाएगा। – JohnOpincar