SQL सर्वर काम करता है कभी-कभी कनेक्शन


101

ADO.Net अनुप्रयोग केवल कभी-कभी स्थानीय नेटवर्क पर किसी अन्य सर्वर से कनेक्ट करने में सक्षम होता है। यह यादृच्छिक लगता है कि क्या दिया गया कनेक्शन का प्रयास सफल होता है या विफल। कनेक्शन प्रपत्र में कनेक्शन स्ट्रिंग का उपयोग कर रहा है:

सर्वर = THESERVER \ TheInstance; डेटाबेस = TheDatabase; यूजर आईडी = TheUser; पासवर्ड = ThePassword;

दी गई त्रुटि है:

कनेक्शन समय समाप्त हो गया। प्री-लॉगिन हैंडशेक पावती का उपभोग करने का प्रयास करते हुए समयावधि समाप्त हो गई।
ऐसा इसलिए हो सकता है क्योंकि प्री-लॉगिन हैंडशेक विफल हो गया था या सर्वर समय पर वापस प्रतिक्रिया देने में असमर्थ था।
इस सर्वर से जुड़ने का प्रयास करते समय बिताई गई अवधि थी - [पूर्व-लॉगिन] आरंभ = 42030; हाथ मिलाना = 0;

.NET एप्लिकेशन एक छोटा परीक्षण ऐप है जो निम्नलिखित कोड को निष्पादित करता है:

using (SqlConnection conn = new SqlConnection(cs))
using (SqlCommand cmd = new SqlCommand("SELECT COUNT(*) FROM TheTable", conn))
{
    conn.Open();
    int rowCount = (int)cmd.ExecuteScalar();
}

TheTable छोटा है, सिर्फ 78 पंक्तियाँ।

हालाँकि, उसी मशीन पर जहां .NET एप्लिकेशन को यह त्रुटि मिलती है, मैं कनेक्शन स्ट्रिंग में SSMS और उपयोगकर्ता आईडी / पासवर्ड का उपयोग करके THESERVER से कनेक्ट करने में सक्षम हूं।

ADO.Net ऐप से कनेक्शन क्यों विफल हो सकता है, लेकिन SSMS से समान क्रेडेंशियल्स के साथ सफल हो सकता है?


जवाबों:


93

यह पता चला कि IPv4 पते के लिए TCP / IP सक्षम था, लेकिन IPv6 पते के लिए नहीं THESERVER

जाहिरा तौर पर कुछ कनेक्शन प्रयास IPv4 और अन्य IPv6 का उपयोग करते हुए समाप्त हो गए।

दोनों IP संस्करणों के लिए TCP / IP को सक्षम करने से समस्या हल हो गई।

तथ्य यह है कि एसएसएमएस ने काम किया संयोग से (पहले कुछ प्रयास IPv4 का इस्तेमाल किया गया)। कुछ बाद में SSMS के माध्यम से जुड़ने का प्रयास करने के परिणामस्वरूप एक ही त्रुटि संदेश मिला।

अतिरिक्त IP पते के लिए TCP / IP सक्षम करने के लिए:

  • Sql सर्वर कॉन्फ़िगरेशन प्रबंधक प्रारंभ करें
  • नोड SQL सर्वर नेटवर्क कॉन्फ़िगरेशन खोलें
  • MYSQLINSTANCE के लिए प्रोटोकॉल पर बायाँ-क्लिक करें
  • दाएँ-बाएँ फलक में, TCP / IP पर राइट-क्लिक करें
  • गुण पर क्लिक करें
  • IP एड्रेस टैब चुनें
  • प्रत्येक सूचीबद्ध आईपी पते के लिए, सुनिश्चित करें कि सक्रिय और सक्षम दोनों हाँ हैं।

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

मैंने कभी भी अपने IPv6 पतों को मैन्युअल रूप से अक्षम नहीं किया। मुझे आश्चर्य है कि वे विकलांग कैसे समाप्त हो गए।
एरिक जे।

मैं किसी कारण से IPv6 को सक्षम करने में सक्षम नहीं हूं। यह कहता है कि परिवर्तनों को प्रभावी करने के लिए सेवा को फिर से शुरू करने की आवश्यकता है लेकिन यह कभी भी इसे "हां" के रूप में बरकरार नहीं रखता है। जाने के बारे में कोई सुराग नहीं
सलमान

5
मुझे यकीन नहीं है कि व्यक्तिगत प्रविष्टियों को निष्क्रिय किया जाना एक समस्या है क्योंकि प्रोटोकॉल टैब में एक ओवरराइड 'सब सुनें' है जो SQL को आपके आईपी पर सुनने के लिए कहता है। प्रलेखन के लिए निम्नलिखित लिंक देखें। msdn.microsoft.com/en-us/library/dd981060.aspx
शेन

2
मुझे लगता है मैं Azure में इस तरह की चीज देख रहा हूं
18

31

Ive में वही त्रुटि थी जो Microsoft अद्यतन के नवीनतम दौर (09/02/2016) के साथ संदिग्ध रूप से संरेखित की गई थी। मैंने पाया कि बिना SSMS मुद्दे के जुड़ा हुआ है जबकि मेरे ASP.NET एप्लिकेशन ने "प्री-लॉगइन हैंडशेक पावती का उपभोग करने का प्रयास करते हुए" समय समाप्त अवधि को वापस कर दिया "त्रुटि

मेरे लिए कनेक्शन स्ट्रिंग में 30 सेकंड का कनेक्शन टाइमआउट जोड़ना था जैसे:

ConnectionString="Data Source=xyz;Initial Catalog=xyz;Integrated Security=True;Connection Timeout=30;"

मेरी स्थिति में एकमात्र प्रभावित कनेक्शन वह था जो एकीकृत सुरक्षा का उपयोग कर रहा था और मैं कनेक्ट करने से पहले एक उपयोगकर्ता को प्रतिरूपण कर रहा था, SQL प्रमाणीकरण का उपयोग कर उसी सर्वर के अन्य कनेक्शन ठीक काम कर रहे थे!

2 टेस्ट सिस्टम (अलग क्लाइंट और Sql सर्वर) एक ही समय में प्रभावित हुए थे जिससे मुझे एक microsoft अपडेट पर संदेह हुआ!


मेरे पास एक ही समस्या थी, संकल्प के लिए धन्यवाद। मैं एक वीपीएन के माध्यम से एकीकृत सुरक्षा का उपयोग कर कनेक्ट कर रहा था और 15 से 30 के दशक के डिफ़ॉल्ट कनेक्शन टाइमआउट को बढ़ाकर मेरे लिए समस्या का समाधान किया।
मार्क जी

1
मुझे यह समस्या SQL 2014 LocalDB के साथ हुई थी। setup.exe के बाद नए एप्लिकेशन को स्थापित किया गया था और स्टार्टअप प्रक्रिया नया डेटाबेस बनाने की कोशिश कर रही थी। इस फिक्स ने मुझे डमी को थूकने से बचा लिया - धन्यवाद शॉन!
स्कॉट

1
इसने मेरे लिए भी इस मुद्दे को सुलझा दिया। मेरे मामले में मैं वीपीएन के माध्यम से जुड़ रहा था और मेजबानों की फ़ाइल में एक प्रविष्टि जोड़ रहा था। समस्या केवल SSMS और .NET अनुप्रयोगों में होस्ट नाम का उपयोग करते समय हुई। आईपी ​​पते का उपयोग करते समय, समस्या उत्पन्न नहीं हुई।
दान

इस उत्तर के लिए धन्यवाद!
कोनराड

17

मैंने एरिक जैसी समस्या को हल किया लेकिन कुछ अन्य परिवर्तनों के साथ:

  • Sql सर्वर कॉन्फ़िगरेशन प्रबंधक प्रारंभ करें
  • नोड SQL सर्वर नेटवर्क कॉन्फ़िगरेशन खोलें
  • MYSQLINSTANCE के लिए प्रोटोकॉल पर बायाँ-क्लिक करें
  • दाएँ-बाएँ फलक में, TCP / IP पर राइट-क्लिक करें
  • गुण पर क्लिक करें
  • IP एड्रेस टैब चुनें
  • प्रत्येक सूचीबद्ध आईपी पते के लिए, सुनिश्चित करें कि सक्रिय और सक्षम दोनों हाँ हैं।

तथा

  • प्रत्येक सूचीबद्ध आईपी पते के लिए, सुनिश्चित करें कि टीसीपी डायनेमिक पोर्ट खाली है और टीसीपी पोर्ट = 1433 (या कुछ अन्य पोर्ट)
  • विंडोज़ फ़ायरवॉल खोलें और जांचें कि पोर्ट इनकमिंग कनेक्शन में खोला गया है

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

11

मुझे एक ही समस्या थी, एक इकाई डेटा मॉडल की स्थापना करते समय विजुअल स्टूडियो से एक स्थानीय नेटवर्क (वीपीएन के माध्यम से) में एक सर्वर से कनेक्ट करने की कोशिश करना।
केवल TransparentNetworkIPResolution=falseकनेक्शन स्ट्रिंग में सेट करके हल करने का प्रबंधन । वीएस एड कनेक्शन विजार्ड में, आप इसे उन्नत टैब में पा सकते हैं।


3
सेटिंग TransparentNetworkIPResolution = गलत है। यह .NET 4.6.1 के रूप में एक नई सुविधा है और डिफ़ॉल्ट रूप से चालू है। इसे झूठी पर सेट करने से 500ms का समय समाप्त हो जाएगा, जो यह सुविधा बनाता है। अधिक जानकारी के लिए: blogs.msdn.microsoft.com/dataaccesstechnologies/2016/05/07/…
Jorriss

धन्यवाद। इस समस्या पर अनुसंधान के घंटे। मुझे इस प्रतिक्रिया को पसंद करने की आवश्यकता है। @Jorriss की टिप्पणी बहुत ही उपयोगी समझ थी क्यों। हालाँकि आप सही कीवर्ड होने के लिए अपने उत्तर को अपडेट कर सकते हैं। Jorriss का सही संदर्भ है।
ट्रैविसविद

5

होस्टेड सर्वर से कनेक्शन होने पर मेरे पास वही हैंडशेक मुद्दा था।

मैंने अपना नेटवर्क और साझाकरण केंद्र खोला और अपने वायरलेस नेटवर्क कनेक्शन पर IPv6 को सक्षम किया।

यहां छवि विवरण दर्ज करें


3

मेरा निष्पादन योग्य जो .NET फ्रेमवर्क 3.5 का उपयोग करके बनाया गया था, हाल ही में (अगस्त 7, 2017 का सप्ताह) स्थापित होने के बाद कुछ विंडोज़ अपडेट के बाद लगभग आधे समय में इन कनेक्शन के मुद्दों की रिपोर्ट करना शुरू कर दिया।

कनेक्शन की विफलता .NET फ्रेमवर्क 4.7 के कारण हुई जो लक्ष्य कंप्यूटर पर स्थापित हो गई (विंडोज अपडेट ऑटो-इंस्टॉल चालू था) - https://support.microsoft.com/?kbid=3186539

.NET फ्रेमवर्क 4.7 की स्थापना रद्द करना कनेक्शन समस्याओं को हल करता है।

जाहिरा तौर पर, .Net फ्रेमवर्क 4.6.1 में एक ब्रेकिंग परिवर्तन है। ट्रांसपेरेंटएन नेटवर्किंड इंड्यूलेशन अपडेटिंग स्ट्रिंग को लेख के अनुसार फ्रेमवर्क संस्करण को वापस रोल करने की आवश्यकता के बिना समस्या को हल किया गया।


2

मैंने IPv6 को सक्षम करके और इनबाउंड पोर्ट 1433 को अनब्लॉक करके विंडोज सर्वर 2012 और एसक्यूएल सर्वर 2012 पर इस त्रुटि को ठीक किया।


1
मुझे लगता है कि यह एक सही उत्तर नहीं हो सकता क्योंकि प्रश्न में "केवल कभी-कभी" होता है। एक अवरुद्ध पोर्ट अभ्यस्त इस बारे में सवाल का समाधान नहीं करता है।
मगियर

2

हमारे मामले में उपलब्धता क्लस्टर कॉन्फ़िगरेशन के कारण समस्या उत्पन्न हुई। इस समस्या को हल करने के लिए हमें MultiSubnetFailoverकनेक्शन स्ट्रिंग में True पर सेट करना होगा।

MSDN पर अधिक जानकारी


1

मुझे एक ही समस्या थी, 1433 और tcp / ip को SQL सर्वर कॉन्फ़िगरेशन प्रबंधक में पोर्ट को खोलने / सक्षम करने से इसे हल करने का प्रबंधन करें और फिर सर्वर को पुनरारंभ करें

यहां छवि विवरण दर्ज करें


1

मेरे मामले में ऊपर सभी विकल्प पहले से ही थे।

कनेक्शन टाइम-आउट = 30 बढ़ाकर इसे हल किया।SQL सर्वर प्रबंधन स्टूडियो


1

इससे पहले कि आप समस्या को हल करने में अधिक समय गंवाएं, मेरी तरह, अपनी विंडोज़ मशीन को पुनः आरंभ करने का प्रयास करें । अन्य सभी समाधानों को लागू करने के बाद मेरे लिए काम किया।


0

जब मैंने SharePoint 2010 से 2013 माइग्रेशन किया था, तो मुझे यह समस्या थी। मुझे संदेह था कि क्योंकि डेटाबेस सर्वर एक फ़ायरवॉल के दूसरी तरफ है जो IP6 को रूट नहीं करता है जो कि तब IP6 का उपयोग करने की कोशिश कर रहा था और डेटाबेस से कनेक्ट होने पर विफल हो रहा था।

मुझे लगता है कि मुद्दा अब हल हो गया है। त्रुटियां बंद हो गई लगती हैं। मैंने जो भी किया वह SharePoint सर्वर पर नेटवर्क एडेप्टर के लिए IP6 (इसे अनचेक करके) को निष्क्रिय कर दिया था।


0

मेरे पास यही मुद्दा था, लेकिन मैं एक स्थिर आईपी पते का उपयोग करके दूरस्थ डीबी से जुड़ रहा था। इसलिए उपरोक्त समाधानों में से किसी ने भी मेरा मुद्दा हल नहीं किया।

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


0

IP पते को अवरुद्ध / ब्लैक लिस्ट करके इस समस्या को हल किया जो उपयोगकर्ता खातों को बल देने की कोशिश कर रहे थे। बड़ी संख्या में विफल लॉगिन प्रयासों (आमतौर पर 'सा' खाते) के लिए अपने SQL एक्सेस लॉग की जाँच करें।


0

मेरे लिए, यह पता चला है कि विंडोज़ सर्वर में फ़ायरवॉल पोर्ट 1433 को रोक रहा था जो कि डिफ़ॉल्ट एसक्यूएल सर्वर पोर्ट है। इसलिए उन कनेक्शनों को स्वीकार करने के लिए इनबाउंड नियम जोड़ने से मेरे लिए चाल चली गई।


0

मेरे मामले में, Persist Security Info=trueकनेक्शन स्ट्रिंग में उपयोगकर्ता और पासवर्ड के साथ पैरामीटर समस्या पैदा कर रहा है। falseसमस्या को हल करने के लिए पैरामीटर या सेट को निकालना ।


0

कुछ भी कठोर करने से पहले पहले एक सरल SQL सर्वर पुनरारंभ की कोशिश करें। इसे ठीक कर सकते हैं। इसने मेरे लिए किया


0

दुर्भाग्य से, मुझे Visual Studio के भीतर स्थापित स्थानीय SQL सर्वर के साथ समस्या थी और यहाँ कई समाधान मेरे लिए कारगर नहीं थे। मुझे बस इतना करना है:

कंट्रोल पैनल> प्रोग्राम और फीचर्स> विजुअल स्टूडियो सेटअप लॉन्चर

और अधिक बटन पर क्लिक करें और मरम्मत चुनें

उसके बाद मैं अपने स्थानीय SQL सर्वर तक पहुँचने और स्थानीय SQL डेटाबेस के साथ काम करने में सक्षम था।


0

मेरे पास एक ही मुद्दा था जो स्वचालित रूप से पिछले माइक्रोसॉफ्ट विंडोज अपडेट के बाद हल करता है, क्या कोई भी समान अनुभव करता है?


0

मेरे पास सटीक मुद्दा था, कई साधना काम नहीं किया, अंतिम रूप से सिस्टम को फिर से शुरू किया, यह ठीक काम किया।


0

"कनेक्शन टाइमआउट की समय सीमा समाप्त" त्रुटि का पता लगाने के लिए , कृपया सुनिश्चित करें कि:

अधिक जानकारी के लिए, कृपया कनेक्शन टाइमआउट समाप्ति की जांच करें । प्री-लॉगिन हैंडशेक पावती का उपभोग करने का प्रयास करते हुए समयावधि समाप्त हो गई


इनमे से किस मामले में रुक-रुक कर गलतियाँ होती हैं?
रॉनजॉन

कृपया संबद्धता प्रकट करने के लिए संपादित करें, इसकी आवश्यकता है । धन्यवाद।
मैक्सिमिलियन ल्यूमिस्टर

0

पहले से स्वीकृत उत्तर के बावजूद, यहाँ एक प्रतिक्रिया जोड़ना। जैसा कि मेरा परिदृश्य DNS होने की पुष्टि की गई थी। अधिक विशेष रूप से, प्री-लॉगिन हैंडशेक के दौरान डीएनएस टाइमआउट। DNS नाम से IP पते में परिवर्तित करके (या होस्ट फ़ाइल प्रविष्टि का उपयोग करके), आप समस्या को दरकिनार कर देते हैं। स्वचालित आईपी रिज़ॉल्यूशन खोने की कीमत पर यद्यपि।

उदाहरण के लिए, यहां तक ​​कि कनेक्शन स्ट्रिंग के टाइमआउट मान को पूरे मिनट के लिए 60 पर सेट करने के बावजूद, यह अभी भी प्रयास के कुछ सेकंड के भीतर होता है। जो एक प्रश्न की ओर जाता है कि यह निर्दिष्ट समय अवधि से पहले क्यों समाप्त हो जाएगा? डीएनएस।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.