Назад | Перейти на главную страницу

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

У меня есть вопрос, и я надеюсь, что здесь кто-нибудь поможет. Я запускаю веб-приложение .NET и получение ошибки при определенных обстоятельствах. Ошибка «System.Data.SqlClient.SqlException: время ожидания истекло». Хотя он создается кодом C # .NET, который подключается к базе данных, я не думаю, что проблема связана с кодом, поэтому я публикую вопрос здесь, а не на StackOverflow.com.

Этот таймаут случается только у некоторых пользователей приложения, а не у всех. И я очень дорого пытался проанализировать SQL, но не смог найти в нем никаких проблем с производительностью. Рассматриваемый SQL запускается для меня всего за несколько секунд, тогда как упомянутая выше ошибка появляется после нескольких минут ожидания. Проблема в том, что это Кажется, ТОЛЬКО происходит при доступе к сайту, а не при запуске того же кода «за кулисами». Это заставило меня поверить, что проблема каким-то образом связана с блокировкой транзакций, о которой я очень мало знаю.

Так что мой Вопрос для тех, кто понимает логику транзакций, ошибки пула соединений и / или то, как веб-запросы данных отличаются от запросов, выполняемых прямо в СУБД (SQL Server). Я действительно ничего не знаю об этом, и поэтому совершенно не понимаю. Я действительно надеюсь, что кто-то здесь может дать мне совет или указать мне правильное направление.

Если я разместил этот вопрос не в том месте, дайте мне знать.

Спасибо заранее за вашу помощь.

чтобы изолировать проблему, вы уже сделали это, выполнив команду sql позади приложения через среду SQL. В любом случае, есть 2 места, откуда может прийти тайм-аут. Сначала тайм-аут, указанный в строке подключения приложения, а затем в свойствах механизма SQL (щелкните правой кнопкой мыши SQL-сервер в SSMS - Свойства - окно подключения)

По умолчанию тайм-аут, установленный в SQL, составляет 600 секунд, что должно быть достаточно для выполнения веб-запроса. Тем не менее, если для тайм-аута приложения установлено меньшее значение и оно превышает время ожидания клиента, будет выдана ошибка тайм-аута.

Время ожидания запроса истекло по ряду причин. Здесь вы можете искать по возможным причинам. Если это происходит случайно, вам не нужно беспокоиться о портах, настройках брандмауэра или правильном написании имени сервера. Но вы должны проверить, что протоколы, включенные клиентом, соответствуют хотя бы одному из включенных на сервере (TCP / IP является наиболее распространенным, который должен быть включен).