Соединение было успешно установлено с сервером, но затем произошла ошибка во время рукопожатия до входа в систему

Я получаю следующую ошибку, когда пытаюсь подключить производственную базу данных из локальной среды.

Мне удалось подключить Production DB раньше, но вдруг я получаю следующую ошибку, любую идею?

Соединение с сервером было успешно установлено, но затем произошла ошибка во время установления связи с предварительным подключением. (поставщик: поставщик TCP, ошибка: 0 - дескриптор недействителен.)

Я пытался запустить сайт asp.net на локальном ПК, на котором есть строка подключения производственной базы данных, следующая - трассировка стека для ошибки, которую я получаю в локальной среде.

в MyWebsiteDAL.clsForumQuestion.SelectAll(Int32 CurrentPageIndex, Int32 PageSize) в D:\EDrive\Мои веб-сайты\MyWebsite\MyWebsite\MyWebsiteDAL\clsForumQuestion.cs: строка 821        в CodeConnect.Default.Page_Load (отправитель объекта, EventArgs e) в D:\EDrive\My WebSites\MyWebsite\MyWebsite\MyWebsite\Default.aspx.cs: строка 100        в System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e)        в System.Web.Util.CalliEventHandlerDelegateProxy.Callback(отправитель объекта, EventArgs e)        в System.Web.UI.Control.OnLoad(EventArgs e)        в System.Web.UI.Control.LoadRecursive()        в System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

Любая идея, что могло бы пойти не так здесь?

Ответ 1

Решение

1) Очистите решение VS.Net

2) Перестроить проект.

3) Reset IIS

4) Запустите проект еще раз.

В основном, что решило мою проблему, но в моем случае я не получал эту ошибку, и вдруг моя локальная среда начинает давать мне выше ошибки, так что может быть, этот трюк работает для меня.

Ответ 2

- Сохрани свою работу,
 - Закройте Visual Studio, затем
 - Повторно откройте свой проект

У меня всегда работает.

Ответ 3

Я испытал эту ошибку при запуске некоторых очень дорогостоящих процессов. Когда система начала работать с нехваткой памяти, я начал замечать такую ​​ошибку. Мне пришлось изменить алгоритм, чтобы лучше использовать ОЗУ.

Следует отметить, что, хотя некоторые потоки выбрасывали это исключение, некоторые другие бросили:

System.Data.SqlClient.SqlException(0x80131904): время ожидания подключения истекло. Период ожидания истек, пытаясь использовать подтверждение подтверждения авторизации перед входом в систему. Это может быть связано с тем, что рукопожатие до входа в систему не удалось или сервер не смог ответить вовремя. Продолжительность, затрачиваемая при попытке подключения к этому серверу, была - [Pre-Login] initialization = 43606; квитирование = 560; --- > System.ComponentModel.Win32Exception (0x80004005): время ожидания ожидания

Обе проблемы исчезли после изменения системы, чтобы она могла работать с меньшим объемом оперативной памяти.

Ответ 5

Возможно, вы захотите проверить несколько вещей:

  • Сервер производства позволяет удаленные подключения. (возможно, кто-то отключил это, особенно если у вас есть DBA)

  • Проверьте строку подключения. Иногда, если вы используете IP-адрес или имя сервера, это приведет к этой ошибке. Попробуйте оба.

Ответ 6

У меня была та же проблема: я хранили данные сеанса в базе данных, строка подключения имела Encrypt = True, и я предполагаю, что клиент sql подключился к серверу в безопасном ( SSL), удаление этого помогло!

Ответ 7

В моем случае это было:

Persist Security Info=True;

в строке подключения, которую нужно удалить. Как только я это сделал, у меня больше не было проблем.

Ответ 8

Как описано в ответе Ricardo,

netsh Winsock reset

работал у меня,

PS, если у вас есть менеджер загрузки через Интернет или такие программы, которые меняют настройку IP-адреса, затем после запуска этой команды при перезагрузке компьютера IDM попросит изменить настройку, установите НЕТ в этом случае и затем запустите приложение, оно будет работать правильно.

Надеюсь, что он

Ответ 9

У меня была аналогичная проблема, когда я не мог подключиться к базе данных и попробовал рекомендации здесь.

В конце дня это то, что сработало для меня:

Используется инструмент диспетчера конфигурации SQL Server для включения протоколов TCP/IP и/или Named Pipes на клиентском компьютере SQL Server.

  • Нажмите "Пуск", выберите "Все программы" и нажмите "Диспетчер конфигурации SQL Server".
  • Нажмите, чтобы развернуть конфигурацию сети SQL Server, а затем щелкните Клиентские протоколы.
  • Щелкните правой кнопкой мыши протокол TCP/IP и выберите "Включить".
  • Щелкните правой кнопкой мыши по протоколу Named Pipes и выберите "Включить".
  • Перезапустите службу SQL Server, если это будет предложено.

Я все еще не уверен, почему или когда это отключено.

Ответ 10

Для меня решение состоит в том, чтобы убить рабочие процессы, выражающие Zombie IIS.

например. найти в диспетчере задач и завершить задачу.

enter image description here

Ответ 11

У меня была такая же проблема, и мне не повезло с предложенными исправлениями. Затем я наткнулся на в этой статье и увидел комментарий от Mirrh относительно программы Sendori, блокирующей LSP. Не знаю, как это произошло на моем компьютере, но там оно было и устранить проблему.

Если статья не работает, просто проверьте свои программы и удалите Sendori, если вы ее видите.

Ответ 12

Я перезапустил службу SQL Server (Sharepoint), и она решила проблему.

Ответ 13

Я получал ту же самую проблему без chnges к базе кода или серверам. Оказалось, что сервер БД работает на 100% процессоре, а SQL Server голодает от любого времени процессора, что вызвало таймаут.

Ответ 14

Имела ту же проблему, причиной для нее была библиотека BCrypt.Net, скомпилированная с использованием платформы .NET 2.0, а весь проект, который ее использовал, составлял компиляцию с .NET 4.0. Если симптомы одинаковы, попробуйте загрузить исходный код BCrypt и перестроить его в конфигурации выпуска в .NET 4.0. После того, как я это сделал, "рукопожатие до входа" отлично работало. Надеюсь, это поможет любому.

Ответ 15

Я испытал эту ошибку и сделал все предложения от вас, ребята, но ничто не повлияло на мою ошибку.

Я поймал виновника: если вы используете файл *.ini для вашей системы, вы можете проверить, какое именно имя сервера было там введено, и убедиться, что оно совпадает с тем, что указано в строке подключения web.config.

Ответ 16

Такая же проблема здесь и никакие ответы, перечисленные здесь не работали, ни какие-либо решения, которые я мог бы найти в Интернете. Проблема началась вскоре после того, как обновление на основе Windows 10 стало применяться на моем компьютере для разработчиков и затронуло только мой старый экземпляр SQL Server 2005. Я не смог подключиться к экземпляру через свои веб-приложения или даже с помощью Sql Management Studio.

Для чего это стоит, это то, что разрешило это для меня:

  • Откройте диспетчер конфигурации SQL Server (в зависимости от того, какую версию SQL Server вы используете):

    • C:\Windows\SysWOW64\SQLServerManager.msc
    • C:\Windows\SysWOW64\SQLServerManager10.msc OR
    • C:\Windows\SysWOW64\SQLServerManager12.msc OR
    • и т.д.
  • Выберите службы SQL Server

  • Найдите неисправную службу и просмотрите свойства

    • например SQL Server (SQL2005) в моем случае
  • На вкладке "Вход в систему" ​​измените "Встроенная учетная запись" на "Сетевая служба"

Это почти то, что сказал это случайное решение: http://www.kutayzorlu.com/operating-systems/linux-unix-redhat-debian-ubuntu-opensuse-centos/general-server-administrating/error-fixed-a-connection-was-successfully-established-with-the-server-but-then-an-error-occurred-during-the-pre-login-handshake-12405.html

Я выбрал Network Service без всякой причины. Mine уже настроен на использование локальной системы. Эта безопасность для меня не имеет значения, поскольку это было проблематично только на моей локальной машине разработки, доступной только локально. Я не могу сказать, почему это работает, но это так.

Ответ 17

В моем случае я получал ошибку, когда мне захотелось получить доступ к удаленной базе данных. Однако я решил это, запустив службу браузера SQL Server.

введите описание изображения здесь

Ответ 18

Была та же проблема из многих дней. Мне пришлось явно добавить поддержку TLS1.2 в мой основной проект, чтобы устранить эту ошибку, и она работала нормально. (ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;)

Смотрите ссылку ниже для более подробной информации (спасибо автору Усману Хуршиду)https://www.itechtics.com/connection-successfully-established-error-occured-pre-login-handshake/