2014-10-13 2 views
6

Я подключаюсь к базе данных MSSQL через мое приложение ASP.NET, но иногда я получаю эту ошибку при открытии соединения.SQL-запрос для предварительного входа в систему

Время ожидания соединения истекло. Период ожидания истек, пытаясь использовать подтверждение подтверждения авторизации перед входом в систему. Это может быть связано с тем, что рукопожатие до входа в систему не удалось или сервер не смог ответить вовремя. Продолжительность, затрачиваемая при попытке подключения к этому серверу, была - [Pre-Login] initialization = 3; квитирование = 14996;

Чтобы решить эту проблему временно, я должен перезапустить IIS. Я буду использовать этот фрагмент кода для подключения к MSSQL:

 using (SqlConnection connection = new SqlConnection(connectionString)) 
     { 
      connection.Open(); 

      /* my commands here */ 

      connection.Close(); 
      connection.Dispose(); 
      SqlConnection.ClearPool(connection); 
     } 

Я позволил порт 1433 в входящих и исходящих правил, но никаких изменений. Как я следуйте инструкциям:

, но ничего не изменилось.

ответ

2

По данным MSDN Doc.

ClearPool очищает пул соединений, что связано с дополнительными соединениями connection.If, связанных с подключением используются во время разговора, они помечены соответствующим образом и отбрасываются (вместо того, чтобы быть возвращен в пул) когда на них вызывается Close.

вы должны использовать метод ClearPool перед тем connection.close

относятся: https://msdn.microsoft.com/zh-tw/library/system.data.sqlclient.sqlconnection.clearpool(v=vs.110).aspx

И если вы используете Используя синтаксис для управления объекта вы should't использовать connection.close метод

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

using (SqlConnection connection = new SqlConnection(connectionString)) 
    { 
     connection.Open(); 
     SqlConnection.ClearPool(connection); 
     /* my commands here */ 
     SqlCommand cmd = new SqlCommand("your command",conn); 
     cmd.ExecuteReader() 


    } 

см пример: https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396

последней обеспечению SQL Server Network Config правильно

enter image description here

enter image description here

+0

Был ли решение найдено для этого? Я получаю аналогичную ошибку, но из SSMS (Management Studios), когда пытаюсь подключиться к SQL-серверу из удаленного m/c. – Aamir

+0

@ Аамир вы проверили настройки брандмауэра? если вы с удаленного устройства должны открыть 1433 (по умолчанию) порт для SQL Server –

+0

@KingJk исходный вопрос был о спорадических событиях недоступности. Брандмауэр будет либо работать всегда, либо прерываться всегда нет? Также у меня такая же проблема. Некоторое время рукопожатие в Management Studio. (Как раз в неделю) –

Смежные вопросы