2012-03-27 17 views
11

हाँ दोस्तों, यह एक बार फिर से है।एसक्यूएल सर्वर: "सर्वर के साथ एक कनेक्शन सफलतापूर्वक स्थापित किया गया था .... मौजूदा कनेक्शन को रिमोट होस्ट द्वारा जबरन बंद कर दिया गया था।"

"A connection was successfully established with the server, but then an error occurred during the login process (provider: TCP Provider, error: 0 - An existing connection was forcibly closed by the remote host.)"

मुझे माफ करना ... मैं इस Google'd है, मेरे पास है पढ़ इस समस्या पर अन्य StackOverflow लेख, और मैं सुझाव के सभी प्रकार की कोशिश की है, लेकिन कुछ भी नहीं काम करता है ।

हम जो देख रहे हैं उसके बारे में कुछ नोट्स यहां दिए गए हैं।

  1. यह समस्या एसक्यूएल सर्वर प्रबंधन स्टूडियो में ही (डेटाबेस गतिविधि के किसी भी प्रकार कर रही है ... एक डेटाबेस में तालिकाओं की सूची प्राप्त करने, एक संग्रहीत प्रक्रिया पर एक नज़र होने, आदि) कभी कभी होता है

  2. यह भी विजुअल स्टूडियो 2010 अपने आप में होता है, जब यह सर्वर से डेटा (जैसे एक .dbml फ़ाइल आदि बनाते समय,) प्राप्त करने के लिए कोशिश कर रहा है

  3. यह भी कभी कभी हमारे नेट में क्या होता है (एएसपी , डब्ल्यूपीएफ, सिल्वरलाइट) अनुप्रयोगों।

  4. हमारे SQL सर्वर 2005 & 2008 सर्वर सभी दुनिया भर के डेटा केंद्रों में आभासी मशीनों पर आधारित हैं, और हम कभी-कभी उनमें से प्रत्येक पर यह त्रुटि देखते हैं। लेकिन ज्यादातर समय, वे सभी बिल्कुल ठीक काम करते हैं।

  5. जब त्रुटि होती है, तो हम त्रुटि के कारण "पुनः प्रयास" कर सकते हैं, और फिर यह ठीक काम करेगा।

  6. हमें लगता है कि .. अगर हम किसी विशेष शहर में एक डाटा सेंटर में एक आईआईएस वेब सर्वर है, और यह एक ही डेटा सेंटर में एक एसक्यूएल सर्वर तक पहुँचता है, तो हम इस मुद्दे को नहीं देखते हैं

  7. हमें लगता है .. अगर हम सर्वर से कनेक्ट होते हैं, और उपयोग करने के लिए उपयोगकर्ता आईडी और पासवर्ड निर्दिष्ट करते हैं, तो यह सक्रिय त्रुटि प्रमाणीकरण का उपयोग करने के बजाय यह त्रुटि अधिक बार होता है।

यह सब एक साथ रखो, और यह मुझे किसी प्रकार के नेटवर्क मुद्दे की तरह लगता है।
लेकिन क्या कोई सुझाव दे सकता है कि क्या देखना है?

यह हमारे .NET अनुप्रयोगों में एक बग नहीं है, यहां तक ​​कि SQL सर्वर प्रबंधन स्टूडियो इस त्रुटि के साथ "ट्रिप अप" भी है।

यह हमें परेशान कर रहा है।

+0

खराब एनआईसी, या शायद 2 आईपी एक ही आईपी के साथ नेटवर्क पर? –

उत्तर

1

यह नेटवर्क समस्याओं की संख्या हो सकता है। कुछ भी जो कोड को सर्वर तक पहुंचने से रोकता है, यहां तक ​​कि एक प्रश्न बनाने के लिए कुछ मिलीसेकंडों के लिए भी।

यह एक विफलता का परिणाम भी हो सकता है। जब हम एक SQL सर्वर से क्लस्टर्ड वातावरण में जाते थे, तो हम देखते हैं कि यह एक विफलता के दौरान होता है। इस मामले में, यह हमारे कनेक्शन पूलिंग के रूप में बाहर निकला। संक्षेप में, एसक्यूएल क्लस्टर में एक नियंत्रक और इसके पीछे दो सर्वर हैं। ए और बी

कहें कि हमारा वेब ऐप सर्वर ए का उपयोग कर रहा है ठीक है, कनेक्शन पूलिंग दोनों तरफ से कनेक्शन बनाता है।सर्वर इसके बारे में जानता है, और वेब ऐप इसके बारे में पता है। एक बार जब क्लस्टर दूसरे सर्वर पर विफल हो जाता है, तो वेब ऐप कनेक्शन से अवगत है लेकिन सर्वर बी नहीं है, इसलिए हमें एक त्रुटि मिलती है।

बिंदु है, नेटवर्क मुद्दों में से किसी संभावित कारण कल्पनीय कारण हो सकता है। सर्वर पर डॉस हमले, मैन-इन-बीच मध्य हमलों में अवरोध और परिवर्तन यातायात। कोई ईथरनेट केबल पर यात्रा करता है और यह जैक में ढीला होता है। आप इसे नाम दें, अगर यह कनेक्शन समस्या का कारण बन सकता है, तो यह कारण हो सकता है। सॉफ्टवेयर है कि के रूप में लोड संतुलन के लिए आवश्यक एक से दूसरे मेजबान से VMs ले जाता है wih, हम भी एक आभासी वातावरण है -

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

यह वास्तव में प्रोग्रामिंग समस्या नहीं है। यह एक पर्यावरण मुद्दा है, और आपको शोध करने और इसे हल करने के लिए अपने पर्यावरण के लिए सीधे पहुंच के साथ प्रशिक्षित पेशेवरों की आवश्यकता है।

+1

शायद आप अन्य वातावरण में इस मुद्दे के स्रोत को ट्रैक करने के लिए कुछ डिबगिंग तकनीकों या सॉफ़्टवेयर का सुझाव दे सकते हैं? – mellamokb

6

शायद ज़रुरत पड़े किसी और को इस मुद्दे मारता है, हम अंत में समाधान मिल गया।

हमारी कंपनी नदी के तापमान को संपीड़ित करने के लिए सॉफ़्टवेयर का उपयोग करती है, जब यह स्थानों के बीच पारित हो जाती है, और यह किसी भी तरह से कुछ कनेक्शन को छोड़ने का कारण बनती है।

हमारे आईटी गुरु एक विन्यास सेटिंग है, जिसके अंत में इस समस्या का समाधान हो पाया।

मेरा मानना ​​है कि वहाँ वहाँ में एक सेटिंग एसक्यूएल सर्वर (या ऐसा ही कुछ) से संपीड़ित परिणामों को बंद करने के लिए है। यह हमारे लिए तय है।

0

यह हमारे कोड में हो रहा था जब हम ओरेकल के लिए dbconnection खोलने कर रहे थे और हमारे डाटाबेस वस्तु में एसक्यूएल के रूप में DBtype गुजर रहे थे।

1

मेरे समस्या यह है कि मैं अनजाने में एक वायरलेस नेटवर्क का उपयोग कर रहा था हमारे नेटवर्क से कनेक्ट करने क्योंकि ईथरनेट केबल दोषपूर्ण था। एसक्यूएल सर्वर की मरम्मत के बाद, किसी अन्य जगह की सिफारिश के रूप में एक विंसॉक रीसेट चला रहा है ...

1

मुझे एक ही समस्या का सामना करना पड़ रहा है और कई ऐप एसक्यूएल डीबी के साथ हमारे ऐप इंटरफेस का सामना कर रहा है। मेरा मानना ​​है (आपके जैसा ही) मेरे पास इस समस्या का कारण बनने के लिए सी # कोड में कोई बग नहीं है। हमने इसे द्वारा लूप के लिए हल किया है, यदि पिछले प्रयास विफल रहता है और फिर क्वेरी चलाता है तो फिर से Azure SQL से कनेक्ट करने का प्रयास करने के लिए अतिरिक्त प्रयास होते हैं।

अधिकांश समय सबकुछ ठीक चलता है लेकिन कभी-कभी हम लूप को पागल देख सकते हैं और दूसरी या तीसरी बार इसे नीचे उल्लिखित त्रुटि के बिना ठीक से निष्पादित किया जा सकता है। उसके बाद हम लॉग फ़ाइल में सभी देखें असफल प्रयासों के लिए नीचे दिए गए त्रुटि:

A connection was successfully established with the server, 
but then an error occurred during the login process. (provider: TCP 
Provider, error: 0 - An existing connection was forcibly closed by the 
remote host.) 

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

मुझे यह उल्लेख करना चाहिए कि हमने इसे समझने के लिए कई डीबगिंग रणनीतियों का प्रयास किया है।अभी यह सब उस डेटाबेस की उपलब्धता को इंगित करता है जिसे हम कनेक्ट करने का प्रयास कर रहे हैं i.e .: यह तब होता है जब स्वीकृत डीबी कनेक्शन की संख्या पार हो जाती है। (या ऐसा लगता है कि इस समय)

+0

यह त्रुटि एसक्यूएल एज़ूर के साथ भी हुई, लेकिन मुझे असली मुद्दा यह है कि मेरे पास डीबगिंग के दौरान बहुत लंबा कनेक्शन खुल गया था - ऐप को स्वाभाविक रूप से ठीक काम करने देना था। बस कनेक्शन टाइमआउट को बढ़ाने के लिए - 'SqlConnection.ConnectionTimeout', 'कमांडटाइमआउट' नहीं होना चाहिए। – SliverNinja

0

मेरे मामले में - त्रुटि माइक्रोसॉफ्ट पहला सुझाव था: क्लाइंट SQL सर्वर मूल क्लाइंट के असमर्थित संस्करण से कनेक्ट हो रहा है।

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

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