Вопрос

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

Сообщение об исключении: время ожидания! Период тайм-аута, прошедший до завершения операции или сервера не отвечает.

Когда я не могу подключиться к SQL Server, даже через Studio Management, он говорит, что сервер истекло и не может подключиться.

Как только я сброшу IIS, он возвращается мгновенно. Так что это, очевидно, означает, что это что-то в моем коде, которое вызывает это. У меня есть сайт MVC, который использует в зависимости от SQL и SQL Cache с включенным Service Broker.

Я тщательно использовал оператор с использованием в течение всего кода, поэтому я уверен, что это не утечные соединения. Чтение через журналы сервера делает вещи более запутанными, так как существует так много информации и предупреждающих событий, я не системный админ, поэтому трудно знать, что происходит.

Начинается со мной, получая событие ASP.NET 4.xxxxx ID 1309 Сообщение об исключении: Explay Experiouse. Период тайм-аута, прошедший до завершения операции или сервера не отвечает. ошибка

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

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

Любая помощь наиболее ценится

Truegilly

Это было полезно?

Решение

Этот тип проблемы обычно сводится к одной из двух вещей. Либо вы не устанавливаете свои соединения должным образом, либо у вас есть ряд тяжелых запросов, которые полностью захватывают ваш сервер базы данных.

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top