सर्वर से परिणाम प्राप्त करते समय परिवहन-स्तर की त्रुटि उत्पन्न हुई है [बंद]


169

मुझे SQL सर्वर त्रुटि मिल रही है:

सर्वर से परिणाम प्राप्त करते समय परिवहन-स्तर की त्रुटि हुई है। (प्रदाता: साझा मेमोरी प्रदाता, त्रुटि: 0 - संभाल अमान्य है।)

मैं Sql Server 2008 SP1, Windows 2008 मानक 64 बिट चला रहा हूं।

यह एक .net 4.0 वेब एप्लीकेशन है। यह तब होता है जब सर्वर से अनुरोध किया जाता है। यह आंतरायिक है। किसी भी विचार मैं इसे कैसे हल कर सकते हैं?


3
यह तब हो सकता है यदि डेटाबेस SQL ​​Express / MSDE के पुराने संस्करण पर बनाया गया था जो AUTO_CLOSE को True पर सेट करता है। या SQL सर्वर सेवा आवृत्ति को पुनरारंभ किया गया था।
devstuff

1
मैं आपके डीबी पर लंबित कार्रवाई के कारण हो सकता हूं। यह एक DB ताला में परिणाम है।
Pix

4
चिह्नित उत्तर एक उत्तर नहीं है। नीचे माइकल ओलीवरो द्वारा दिया गया जवाब वास्तव में सामग्री प्रदान करता है और जब मैंने इसमें भाग लिया तो समस्या का समाधान हो गया। (अस्थायी रूप से मेरे देव मशीन पर अस्थायी वेब सर्वर को बंद करना।) मैं उत्तर को बदलने की सलाह देता हूं।
एडम मिलर

3
@ फ़्लेक्सो यह ऑफ़-टॉपिक के रूप में बंद है? मुझे सिर्फ वीएस 2017 और एमएस एसक्यूएल 2016 एंटरप्राइज के नए इंस्टॉल्स के साथ मेरे साथ ऐसा हुआ था। जबकि यह वीएस 2015 समुदाय के साथ ठीक काम कर रहा था।
एडवर्ड

1
यह विषय नहीं होना चाहिए। समस्या का उपयोग में कोड से कोई लेना-देना नहीं है, इसलिए इसके लिए MCVE नहीं बनाया जा सकता है। इसके अलावा, क्लोजर कारण बताता है: this one was resolved in a manner unlikely to help future readers- लेकिन 179k लोग इस सवाल पर आए हैं।
निस्सर्ग

जवाबों:


102

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

यदि यह उत्पादन में होता है, तो अपने वेब साइट के लिए अपने एप्लिकेशन पूल को रीसेट करना कनेक्शन पूल को रीसायकल करना चाहिए।


1
यह एक वास्तविक उत्तर है।
ह्युज_

2
मेरे विशेष मामले में, मेरे पास MultipleActiveResultSets=Trueकनेक्शन स्ट्रिंग में एक सेटिंग थी जो समान त्रुटि का कारण बनी।
सेमोन वैस्कुबोव

17

कमांड प्रॉम्प्ट पर निम्न कमांड का प्रयास करें:

netsh interface tcp set global autotuning=disabled

यह नेटवर्क स्टैक की ऑटो स्केलिंग क्षमताओं को बंद कर देता है


20
क्या आप कुछ विवरण प्रदान कर सकते हैं कि वास्तव में क्या करता है? क्या विश्व स्तर पर इस तरह के मूल्य को स्थापित करने के खिलाफ कोई कारण हैं?
ड्रू नोक

1
यह नेटवर्क स्टैक की ऑटो स्केलिंग क्षमताओं को बंद कर देता है।
साइमो

Windows XP SP3 में काम नहीं करता है। Netsh इंटरफ़ेस में Windows XP में tcp सब कमांड नहीं है, हालांकि यह विंडोज 7 SP1 में अच्छी तरह से काम करता है।
नारायणन

मुझे पता है कि यह पुराना है, लेकिन यह एकमात्र समाधान था जो मेरे लिए काम करता था (अधिकांश मुद्दे / समाधान वेबसर्वर / ऐप के चारों ओर घूमते हैं, मेरी स्थिति डेस्कटॉप ऐप और स्थानीय नेटवर्क सर्वर है, कोई आईआईएस या ऐसा कुछ भी नहीं है)। ऑटोट्यूनिंग / ऑटोस्कोलिंग को बंद करना इस समस्या को ठीक क्यों करेगा?
ट्रेंट

1
मेरे मामले में, SQL सर्वर प्रबंधन स्टूडियो के ReOpen ने समस्या को हल किया
एलेक्स

15

मुझे भी यही समस्या थी। मैंने Visual Studio को पुनः आरंभ किया और इसने समस्या को ठीक कर दिया


12

IIS का उपयोग न करने वालों के लिए, जब Visual Studio 2010 के साथ डिबगिंग करते समय मेरे पास यह समस्या थी। मैंने सभी डिबगर प्रक्रियाओं को समाप्त कर दिया: WebDev.WebServer40.EXE जिसने इस मुद्दे को हल किया।


कृपया उन चरणों को बताएं कि आपने उन प्रक्रिया को कैसे समाप्त किया। मैं शुरुआत कर रहा हूं और मुझे नहीं पता कि आपके द्वारा "सभी डिबगर प्रक्रिया समाप्त हो गई" का क्या मतलब है
अटूट

@ अटूट मैं सिर्फ टास्क मैनेजर का उपयोग करता था। कार्य प्रबंधक में, आप WebDev.WebServer40.EXE नाम से सभी चल रही प्रक्रियाओं को देख सकते हैं। विंडोज़ प्रक्रिया को कैसे मारें , इसके लिए betanews.com/2015/10/08/how-to-kill-a-windows-process देखें ।
jth_92

8

ट्रांसपोर्ट स्तर की त्रुटियां अक्सर SQL सर्वर के टूटने से जुड़े होने से जुड़ी होती हैं ... आमतौर पर नेटवर्क की।

समय-समय पर समाप्त हो जाता है जब एक sql क्वेरी को चलाने में बहुत लंबा समय लगता है।

तो कुछ विकल्प हो सकते हैं:

  1. वीपीएन (यदि उपयोग किया जाता है) या किसी अन्य टूल में कनेक्शन की जाँच करें
  2. IIS को पुनरारंभ करें
  3. मशीन को पुनरारंभ करें
  4. एसक्यूएल प्रश्नों का अनुकूलन करें।

सरल उत्तर लेकिन मेरा समय बच गया।
कर्क

7

आपको केवल ASP.NET डेवलपमेंट सर्वर को बंद करने और प्रोजेक्ट को फिर से चलाने की आवश्यकता है


4

यदि आप Microsoft SQL सर्वर प्रबंधन के माध्यम से अपने डेटाबेस से जुड़े हैं, तो अपने सभी कनेक्शनों को बंद करें और पुनः प्रयास करें। जब यह त्रुटि किसी अन्य Azure डेटाबेस से कनेक्ट की गई थी, और इसे बंद करने पर मेरे लिए काम किया था। अभी भी पता नहीं क्यों ..


यह एक फिक्स था जो मेरे लिए काम करता था। मैंने SQL सर्वर प्रबंधन स्टूडियो को बंद कर दिया और फिर मैंने इस त्रुटि को फिर कभी नहीं देखा।
बीविक

4

ऑपरेशन के लगभग 5 मिनट के बाद, हमेशा यह हो रहा था। जांच की गई और पाया गया कि e1iexpress से एक चेतावनी हमेशा विफलता से पहले हुई। यह स्पष्ट रूप से एक निश्चित टीसीपी / आईपी एडेप्टर के साथ करने में त्रुटि है। लेकिन वाईफाई से हार्डवार्ड में बदलने का उस पर कोई असर नहीं हुआ।

इसलिए प्लान बी की कोशिश की और विजुअल स्टूडियो को फिर से शुरू किया। तब यह ठीक काम किया।

करीब अध्ययन पर मैंने देखा कि, जब सही ढंग से काम कर रहा था, तो संदेश The Thread '<No Name>' has exited with code 0लगभग उसी समय हुआ जब रन पिछले प्रयासों में दुर्घटनाग्रस्त हो गया था। कुछ Googling से पता चलता है कि यह संदेश तब आता है जब (अन्य चीजों के अलावा) सर्वर थ्रेड पूल को ट्रिम कर रहा होता है।

संभवतः थ्रेड पूल में एक फर्जी धागा था और हर बार जब सर्वर ने "ट्रिम" करने का प्रयास किया तो यह ऐप को नीचे ले गया।


4

पर देखो MSDN ब्लॉग जो बाहर इस त्रुटि का विवरण:

कनेक्शन्स निकालना

कनेक्शन पूलर लंबे समय तक निष्क्रिय रहने के बाद पूल से कनेक्शन निकालता है, या यदि पूलर यह पता लगाता है कि सर्वर के साथ कनेक्शन विच्छेद हो गया है।

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

अवैध कनेक्शन को कनेक्शन पूल से तभी हटाया जाता है जब वे बंद या पुनः प्राप्त होते हैं।

यदि कोई कनेक्शन गायब हो चुके सर्वर से मौजूद है, तो यह कनेक्शन पूल से भी खींचा जा सकता है, भले ही कनेक्शन पूलर ने विच्छेदित कनेक्शन का पता नहीं लगाया हो और उसे अमान्य के रूप में चिह्नित किया हो।

यह मामला है क्योंकि जाँच के ओवरहेड कि कनेक्शन अभी भी मान्य है सर्वर के लिए एक और दौर यात्रा के कारण पूलर होने के लाभों को समाप्त कर देगा।

जब ऐसा होता है, तो कनेक्शन का उपयोग करने का पहला प्रयास यह पता लगाएगा कि कनेक्शन विच्छेद हो गया है, और एक अपवाद फेंक दिया गया है।

मूल रूप से आप जो देख रहे हैं, वह अंतिम वाक्य में अपवाद है।

कनेक्शन पूल से एक कनेक्शन लिया जाता है, एप्लिकेशन को पता नहीं है कि भौतिक कनेक्शन चला गया है, इसका उपयोग करने का प्रयास इस धारणा के तहत किया जाता है कि भौतिक कनेक्शन अभी भी है।

और आपको अपना अपवाद मिलता है।

इसके कुछ सामान्य कारण हैं।

  1. सर्वर को फिर से शुरू किया गया है, इससे मौजूदा कनेक्शन बंद हो जाएंगे।

इस स्थिति में, SQL सर्वर लॉग पर एक नज़र डालें, जो आमतौर पर पाया जाता है: C: \ Program Files \ Microsoft SQL Server \\ MSSQL \ Log

यदि स्टार्टअप के लिए टाइमस्टैम्प बहुत हाल ही में है, तो हम संदेह कर सकते हैं कि यह क्या त्रुटि का कारण है। अपवाद के समय के साथ इस टाइमस्टैम्प को सहसंबद्ध करने का प्रयास करें।

2009-04-16 11: 32: 15.62 सर्वर 'फ़ाइल: C: \ Program Files \ Microsoft SQL Server \ MSSQL.1 \ MSSQL \ Log \ ERRORLOG' में SQL सर्वर संदेश लॉग करना।

  1. किसी ने या किसी ने उस SPID को मार दिया है जिसका इस्तेमाल किया जा रहा है।

फिर से, SQL सर्वर लॉग में एक नज़र डालें। यदि आप एक हत्या पाते हैं, तो अपवाद के समय के साथ इस टाइमस्टैम्प को सहसंबंधित करने का प्रयास करें।

2009-04-16 11: 34: 09.57 spidXX प्रोसेस आईडी XX को होस्टनाम xxxxx, होस्ट प्रोसेस आईडी XXXX द्वारा मार दिया गया था।

  1. एक फ़ेलओवर है (उदाहरण के लिए एक दर्पण सेटअप में) फिर से, SQL सर्वर लॉग में एक नज़र डालें।

यदि कोई विफलता है, तो अपवाद के समय के साथ इस टाइमस्टैम्प को सहसंबंधित करने का प्रयास करें।

2009-04-16 11: 35: 12.93 spidXX मिरर डेटाबेस "" फेलओवर के कारण "PRINCIPAL" से "MIRROR" में भूमिकाएं बदल रहा है।


3

आपको यह संदेश तब मिलता है जब आपकी स्क्रिप्ट कुछ कारणों से SQL सेवा बंद कर देती है। इसलिए यदि आप SQL सेवा फिर से शुरू करते हैं तो शायद आपकी समस्या हल हो जाएगी।


SQL सेवा कैसे शुरू करें, इस पर कृपया कदम प्रदान करें। मैं एक शुरुआती हूं और मैंने सिर्फ एक asp.net mvc 5 एप्लिकेशन बनाया है। और जब मैं "इनेबल-माइग्रेशन" चलाता हूं तो सबकुछ ठीक होता है। मैं "ऐड-माइग्रेशन" sdfd "रन करता हूं, सब कुछ ठीक है और फिर जब मैं अपडेट-डेटाबेस पर क्लिक करता हूं तो मुझे यह त्रुटि मिलती है। कृपया मुझे गाइड करें
अनब्रेकेबल

3

मुझे पता है कि यह हर किसी की मदद नहीं कर सकता है (जो जानता है, शायद हाँ), लेकिन मुझे वही समस्या थी और कुछ समय बाद, हमने महसूस किया कि इसका कारण कोड से ही कुछ था।

सर्वर तक पहुंचने का प्रयास करने वाला कंप्यूटर दूसरे नेटवर्क में था, कनेक्शन स्थापित किया जा सकता था लेकिन फिर गिरा दिया गया।

जिस तरह से हम इसे ठीक करते थे, वह था कंप्यूटर में एक स्टैटिक रूट जोड़ना, जिससे फ़ायरवॉल को पार किए बिना सर्वर तक सीधी पहुँच हो सके।

route add p YourServerNetwork mask NetworkMask Router 

नमूना:

route add p 172.16.12.0 mask 255.255.255.0 192.168.11.2 

मुझे आशा है कि यह किसी की मदद करता है, यह बेहतर है कि कम से कम, एक सुराग के रूप में, इसलिए यदि आप इसका सामना करते हैं, तो आप जानते हैं कि इसे कैसे हल किया जाए।


2

मुझे विज़ुअल स्टडीज 2012 के विकास के माहौल में एक ही त्रुटि मिली, IIS एक्सप्रेस को रोक दिया और आवेदन को फिर से शुरू कर दिया, यह काम करना शुरू कर दिया।


2

मेरे मामले में "SQL सर्वर" सर्वर सेवा बंद हो गई। जब मैंने उस सेवा को फिर से शुरू किया जिसने मुझे क्वेरी चलाने और त्रुटि को समाप्त करने में सक्षम किया।

यह भी एक अच्छा विचार है कि अपनी क्वेरी की जांच करने के लिए यह पता लगाएं कि क्वेरी ने इस सेवा को बंद क्यों किया

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


1

मेरी भी यही समस्या थी। मैंने इसे हल किया, SQL सर्वर लॉग को छोटा किया। ऐसा करने की जांच करें, और फिर हमें बताएं, अगर इस समाधान ने आपकी मदद की।


1

मेरे लिए इसका उत्तर 2008R2 से 2012R2 तक OS को अपग्रेड करना है, iisreset का समाधान या पुनः आरंभ एपल ने मेरे लिए काम नहीं किया। मैंने टीसीपी चिमनी ऑफ़लोडिंग सेटिंग को भी चालू करने की कोशिश की, लेकिन मैंने सर्वर को पुनरारंभ नहीं किया क्योंकि यह एक उत्पादन सर्वर है, जो या तो काम नहीं करता था।


1

मेरे लिए समाधान बिलकुल अलग था।

मेरे मामले में मेरे पास एक ऑब्जेक्ट स्रोत था जिसे डेटेटिमेस्टैम्प पैरामीटर की आवश्यकता थी। भले ही वह ODS पैरामीटर ConvertEmptyStringToNull सच था 1/1/0001 SelectMethod को पारित किया जा रहा था। जब बदले में एक sql डेटाइम ओवरफ़्लो अपवाद हुआ, जब उस डेटॉल को sql सर्वर में पास किया गया था।

डेटाइम.इयर! = 0001 के लिए एक अतिरिक्त चेक जोड़ा गया और इसने मेरे लिए इसे हल कर दिया।

अजीब है कि यह एक परिवहन स्तर की त्रुटि को फेंक देगा और एक डेटाइम ओवरफ़्लो त्रुटि नहीं होगी। वैसे भी ..


1
इससे संबंधित कोई तरीका नहीं है, यह संयोग ही रहा होगा
मिसेल कॉर्नेल

1

हमें अपने व्यापार सर्वर और हमारे डेटाबेस सर्वर के बीच हाल ही में इस त्रुटि का सामना करना पड़ा। हमारे लिए समाधान नेटवर्क इंटरफेस पर "आईपी ऑफ़लोडिंग" को अक्षम करना था। फिर त्रुटि दूर हो गई।


1

इस त्रुटि के लिए मैंने जो एक कारण पाया, वह है कनेक्शन स्ट्रिंग में ' पैकेट साइज = xxxxx '। अगर xxxx का मान बहुत बड़ा है, तो हम इस त्रुटि को देखेंगे। नेटवर्क मानों के आधार पर या तो इस मान को हटा दें और SQL सर्वर को संभाल कर रखें या इसे कम रखें।


1

यह मेरे साथ तब हुआ जब मैं एक SQL डेटाबेस को पुनर्स्थापित करने का प्रयास कर रहा था और Optionsटैब में चेक बॉक्स का पालन कर रहा था ,

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

जैसा कि यह एक स्टैंड अलोन डेटाबेस सर्वर है, जो एसएसएमएस को बंद कर रहा है और इसे फिर से खोलना मेरे लिए समस्या का हल है।


1

यह तब होता है जब डेटाबेस को गिरा दिया जाता है और कुछ साझा संसाधनों को फिर से बनाया जाता है, तब भी डेटाबेस पर विचार होता है कि अभी भी मौजूद है, इसलिए जब आप डेटाबेस को फिर से बनाने के लिए क्वेरी को फिर से चलाएंगे, तो इसे दोबारा बनाने के बाद त्रुटि फिर से दिखाई नहीं देगी और Command(s) completed successfully.संदेश त्रुटि संदेश के बजाय दिखाएगा Msg 233, Level 20, State 0, Line 0 A transport-level error has occurred when sending the request to the server. (provider: Shared Memory Provider, error: 0 - No process is on the other end of the pipe.)

इस त्रुटि को अनदेखा करें जब आप डेटाबेस को छोड़ रहे हैं और फिर से बना रहे हैं और बिना किसी चिंता के अपने डीडीएल प्रश्नों को फिर से निष्पादित करते हैं।


0

मुझे हाल ही में एक ही मुद्दे का सामना करना पड़ा, लेकिन मुझे Google में जवाब नहीं मिला। इसलिए इसे यहां साझा करने के बारे में सोचा, ताकि यह भविष्य में किसी की मदद कर सके।

त्रुटि:

क्वेरी निष्पादित करते समय क्वेरी कुछ आउटपुट प्रदान करेगी फिर यह त्रुटि के नीचे फेंक देगी।

"सर्वर से आउटपुट प्राप्त करते समय ट्रांसपोर्ट स्तर की त्रुटि हुई है (टीसीपी: प्रदाता, त्रुटि: 0- निर्दिष्ट नेटवर्क नाम अब उपलब्ध नहीं है"

उपाय:

  1. उस लिंक किए गए सर्वर के प्रदाता की जांच करें
  2. उस प्रदाता के गुणों में, समस्या को ठीक करने के लिए उस विशेष प्रदाता के लिए "इनप्रोसेस की अनुमति दें" विकल्प को सक्षम करें।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.