Otrzymuję następujący błąd, gdy próbuję połączyć produkcyjną bazę danych ze środowiska lokalnego.
Udało mi się wcześniej podłączyć Production DB, ale nagle pojawia się błąd, masz jakiś pomysł?
Połączenie z serwerem zostało pomyślnie nawiązane, ale podczas uzgadniania przed logowaniem wystąpił błąd. (Dostawca: Dostawca TCP, błąd: 0 - uchwyt jest nieprawidłowy).
Próbowałem uruchomić witrynę internetową asp.net na lokalnym komputerze PC, który ma ciąg połączenia produkcyjnej bazy danych, a poniżej znajduje się ślad stosu dotyczący błędu, który otrzymuję w środowisku lokalnym.
> at MyWebsiteDAL.clsForumQuestion.SelectAll(Int32 CurrentPageIndex, Int32 PageSize) in D:\EDrive\My WebSites\MyWebsite\MyWebsite\MyWebsiteDAL\clsForumQuestion.cs:line 821
at CodeConnect.Default.Page_Load(Object sender, EventArgs e) in D:\EDrive\My WebSites\MyWebsite\MyWebsite\MyWebsite\Default.aspx.cs:line 100
at System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e)
at System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e)
at System.Web.UI.Control.OnLoad(EventArgs e)
at System.Web.UI.Control.LoadRecursive()
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
Masz pojęcie, co mogło się tu nie udać?
.net
sql-server
sql-server-2008
ado.net
database-connection
Jordon Willis
źródło
źródło
Odpowiedzi:
Rozwiązanie
1) Wyczyść rozwiązanie VS.Net
2) Przebuduj projekt.
3) Zresetuj usługi IIS
4) Uruchom projekt ponownie.
Zasadniczo to rozwiązało mój problem, ale w moim przypadku nie otrzymałem tego błędu i nagle moje lokalne środowisko zaczyna wyświetlać powyższy błąd, więc może ta sztuczka zadziała dla mnie.
źródło
- Zapisz swoją pracę,
- Zamknij program Visual Studio, a następnie
- Otwórz ponownie projekt
Zawsze mi pasuje.
źródło
Uruchomienie następującego polecenia zadziałało dla mnie:
Widziane pod adresem https://serverfault.com/a/487139/250527
źródło
reset
wymaga ponownego uruchomienia systemu.Wystąpił ten błąd podczas uruchamiania niektórych procesów, które są bardzo kosztowne w pamięci. Kiedy w systemie zaczyna brakować pamięci, zacząłem dostrzegać tego rodzaju błąd. Musiałem zmienić algorytm, aby lepiej wykorzystać pamięć RAM.
Należy zauważyć, że podczas gdy niektóre wątki zgłosiły ten wyjątek, inne wyrzuciły:
Oba problemy zniknęły po zmianie systemu, aby mógł działać przy mniejszej ilości pamięci RAM.
źródło
Miałem ten sam problem, przechowywałem dane sesji w bazie danych, ciąg połączenia zawierał Encrypt = True , który zakładam, że powiedział klientowi sql, aby połączyć się z serwerem w trybie bezpiecznym (SSL), usunięcie tego pomogło!
źródło
Możesz chcieć sprawdzić kilka rzeczy:
Twój serwer produkcyjny umożliwia połączenia zdalne. (możliwe, że ktoś to wyłączył, zwłaszcza jeśli masz DBA)
Sprawdź parametry połączenia. Czasami, jeśli używasz adresu IP lub nazwy serwera, spowoduje to ten błąd. Spróbuj obu.
źródło
W moim przypadku było to:
Persist Security Info=True;
w moich parametrach połączenia, które musiały zostać usunięte. Kiedy to zrobiłem, nie miałem już problemów.
źródło
W moim przypadku ten błąd wystąpił z rdzeniem dot net i
Microsoft.Data.SqlClient
. Rozdzielczość polegała na dodaniu;TrustServerCertificate=true
na końcu parametrów połączenia.źródło
Jak opisano w odpowiedzi Ricardo ,
pracował dla mnie,
PS jeśli masz menedżera pobierania internetowego lub takie programy, które zmieniają ustawienia IP są zainstalowane, to po uruchomieniu tego polecenia przy ponownym uruchomieniu komputera IDM poprosi o zmianę ustawień, w tym przypadku ustaw NIE, a następnie uruchom aplikację, która będzie działać poprawnie.
Mam nadzieję
źródło
Miałem podobny problem, w którym nie mogłem połączyć się z bazą danych i wypróbowałem tutaj zalecenia.
Pod koniec dnia to zadziałało dla mnie:
Użyto narzędzia SQL Server Configuration Manager, aby włączyć protokoły TCP / IP i / lub Named Pipes na komputerze klienckim SQL Server.
Nadal nie wiem, dlaczego i kiedy zostało to wyłączone.
źródło
Dla mnie rozwiązaniem jest zabicie ekspresowych procesów roboczych zombie IIS.
np. zlokalizuj w Menedżerze zadań i zakończ zadanie.
źródło
Miałem ten sam problem i nie miałem szczęścia z sugerowanymi poprawkami. Następnie natknąłem się na ten artykuł i zobaczyłem komentarz Mirrh dotyczący programu o nazwie Sendori blokującego LSP. Nie mam pojęcia, jak to się stało na moim komputerze, ale było i usunięcie go rozwiązało problem.
Jeśli artykuł nie działa, po prostu sprawdź programy i odinstaluj Sendori, jeśli go zobaczysz.
źródło
Zrestartowałem usługę SQL Server (Sharepoint) i rozwiązałem problem.
źródło
Otrzymałem dokładnie ten sam problem, bez zmian w bazie kodu lub serwerach. Okazało się, że serwer DB działał na 100% CPU, a SQL Server był pozbawiony jakiegokolwiek czasu procesora, co spowodowało przekroczenie limitu czasu.
źródło
Miałem ten sam problem od wielu dni. Musiałem jawnie dodać obsługę TLS1.2 w moim podstawowym projekcie, aby rozwiązać ten błąd i działało dobrze. (ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;)
Zobacz poniższy link, aby uzyskać więcej informacji (dzięki autorowi Usmanowi Khurshidowi) https://www.itechtics.com/connection-successfully-established-error-occured-pre-login-handshake/
źródło
Wypróbowałem większość z powyższych i nic nie działało. Następnie wyłącz oprogramowanie VPN (NordVPN) i wszystko było w porządku.
źródło
Próbowałem wielu rozwiązań w ciągu ostatniego miesiąca, żadne nie zadziałało. Problem polega na tym, że produkcyjna baza danych znajduje się w sieci VPN i w jakiś sposób dostawca usług internetowych uważa, że połączenie HTTP nie jest bezpieczne. Jednak udało mi się połączyć z tą samą produkcyjną bazą danych z SSMS (używa TCP).
Moje rozwiązanie: użyj telefonu komórkowego jako hotspotu i korzystaj z danych mobilnych zamiast sieci Wi-Fi w biurze / domu.
źródło
Miał ten sam problem, powodem była biblioteka BCrypt.Net, skompilowana z wykorzystaniem frameworka .NET 2.0, podczas gdy cały projekt, który ją wykorzystywał, kompilował się z .NET 4.0. Jeśli objawy są takie same, spróbuj pobrać kod źródłowy BCrypt i odbudować go w konfiguracji wydania w .NET 4.0. Po tym, jak to zrobiłem, „uścisk dłoni przed logowaniem” działał dobrze. Mam nadzieję, że to pomoże każdemu.
źródło
Doświadczyłem tego błędu i wykonałem wszystkie sugestie od was, ale żadna nie miała żadnego wpływu na mój błąd.
Złapałem winowajcę: jeśli używasz
*.ini
pliku dla swojego systemu, możesz chcieć sprawdzić, jaka nazwa serwera została tam wprowadzona i upewnić się, że jest taka sama jak ta w ciągu połączenia web.config.źródło
Ten sam problem tutaj i żadne odpowiedzi tutaj nie działały, ani żadnych rozwiązań, które mogłem znaleźć w Internecie. Problem zaczął się wkrótce po tym, jak aktualizacja Windows 10 rocznicowa została zastosowana na moim komputerze deweloperskim i dotyczyła tylko mojej starej instancji SQL Server 2005. Nie mogłem połączyć się z instancją za pośrednictwem moich aplikacji internetowych ani nawet przy użyciu Sql Management Studio.
To, co jest warte, rozwiązało to dla mnie:
Otwórz Menedżera konfiguracji programu SQL Server (w zależności od używanej wersji programu SQL Server):
Wybierz usługi SQL Server
Zlokalizuj problematyczną usługę i wyświetl Właściwości
Na karcie Logowanie zmień „Wbudowane konto” na „Usługa sieciowa”
Dokładnie tak mówi to losowe rozwiązanie: http://www.kutayzorlu.com/operating-systems/linux-unix-redhat-debian-ubuntu-opensuse-centos/general-server-administrating/error-fixed-a-connection -został-pomyślnie-ustanowiony-z-serwerem-ale-wtedy-wystąpił-błąd-podczas-uzgadniania-przed-logowaniem-12405.html
Wybrałem usługę sieciową bez powodu. Mój był już skonfigurowany do korzystania z systemu lokalnego. To zabezpieczenie nie ma dla mnie znaczenia, ponieważ było problematyczne tylko na moim lokalnym komputerze programistycznym, do którego dostęp był możliwy tylko lokalnie. Nie mogę doradzić, dlaczego to działa, ale zadziałało.
źródło
W moim przypadku otrzymywałem błąd, gdy chciałem uzyskać dostęp do zdalnej bazy danych. Jednak rozwiązałem to, uruchamiając usługę SQL Server Browser.
źródło
Jeśli łączysz się ze starym serwerem SQL:
Przełącz się z System.Data. SqlClient.SqlConnection to System.Data. OleDb.OleDbConnection
Użyj parametrów połączenia OleDb:
źródło
W moim przypadku ponowne włączenie TLS 1.0 na serwerze bazy danych rozwiązało ten problem.
źródło