Время от времени наш сервер выдает это хорошо известное исключение:
Истекло время ожидания. Время ожидания истекло до завершения операции или сервер не отвечает.
Это происходит под давлением, когда сервер обрабатывает большие запросы. Я провел небольшое исследование и обнаружил, что могу изменить настройку тайм-аута соединения в строке подключения и / или свойства считывателя данных SqlCommand.Timeout.
По умолчанию для тайм-аута команды sql установлено значение 30 секунд, а для тайм-аута соединения - 15, и мы никогда их не отменяем.
Я воспроизвел контекст и вручную выполнил все запросы в студии управления. Их продолжительность составляет около 1 секунды и всегда намного больше 30.
Но, как ни странно, когда я смотрю журналы сервера, это исключение сразу же выдается при вызове запроса. Я имею в виду, что запрос выполняется, и через одну миллисекунду возникает исключение. Извините, но позвольте мне по-своему взглянуть на эту 8-o.
Для полноты, наш экземпляр sql зеркалируется с другим в синхронном режиме. Мы используем Ado.Net через настольные адаптеры.