NadhVanim Ответов: 2

Тайм-аут истек. Период ожидания истекший до завершения операции или сервер не отвечает"


Привет,

У меня есть приложение контроля доступа под названием db digitus, которое используется SQL server для хранения и извлечения данных. как только я ищу отчет о контроле доступа , я получаю эту ошибку "тайм-аут истек. Время ожидания истекло до завершения операции или сервер не отвечает". Кто-нибудь может помочь мне решить эту проблему, пожалуйста?

спасибо

Что я уже пробовал:

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

2 Ответов

Рейтинг:
2

MadMyche

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

Тайм-аут по умолчанию для SqlConnection это 30 секунд. Вы можете переопределить это, установив тайм-аут в определении строки подключения. В традиционной сетевой структуре это было бы сделано либо в app.config файл или web.config файл для Ан ASP.NET веб-сайт (разбит на несколько строк для удобства просмотра)

<configuration>
   <connectionStrings>
      <add name="nmConn" connectionString="Server=nmServer; Database=nmDB;
                                           User Id=nmUser;  Password=pwUser;
                                           Connection Timeout=60" />
   </connectionStrings>
</configuration>
Подобно тому, как Объект sqlconnection, существует также тайм-аут для отдельного человека SqlCommand Это будет обновлено в блоке кода, который вызывает фактическую команду. Вот пример на языке Си#
string connString = "";
string cmdText = "";

using (SqlConnection conn = new SqlConnection(connString)) {  
   conn.Open();  

   SqlCommand cmd = new SqlCommand(cmdText, conn);  
   cmd.CommandTimeout = 60;                       // set TimeOut here

   try { cmd.ExecuteNonQuery(); }  
   catch (SqlException sx) {
      // provide information from {sx}
   }  
}
Рекомендации:
Microsoft Docs: Строки Подключения Файлов Конфигурации[^]
Microsofy Doc: Тайм-Аут Соединения Команд Sql[^]
Это все находка и денди, но во многих случаях это просто повязка для другой проблемы. Правильная диагностика определит Почему это происходит
Выясните, какая команда имеет проблему, а затем попробуйте это сделать в SQL IDE, например Среда Sql Server Management Studio и посмотрите, сколько времени на самом деле требуется, чтобы бежать. Там есть инструменты, которые могут помочь вам (например, показать план выполнения), которые могут показать, что замедляет его работу, а иногда и имеет возможные исправления (например, отсутствующие индексы).


Рейтинг:
0

NadhVanim

Привет Рикзиленд,

спасибо за Ваш быстрый ответ, не могли бы вы проинструктировать, как я могу перейти к этому варианту и где я делаю изменения ? я не смелый в SQL Server, но я уверен, что смогу исправить эту проблему с помощью кого-то вроде вас