Как установить ограничение по времени для таймаута в C#
У меня есть микросервис, который выполняет поисковую функцию.
На уровне доступа к данным мы используем Entity framework для общения с БД.
У нас есть миллионы записей в БД, для конкретного ключевого слова поиска требуется больше времени (приблизительно 110 секунд), так как запрос занимает время для отображения данных, контекст сущности выбрасывает исключение тайм - аута.
Внутреннее исключение :
"Свойство innerexception": {
"Сообщение": "произошла ошибка.",
"Сообщение_об_исключении": "время ожидания истекло. Время ожидания истекло до завершения операции или сервер не отвечает.",
"Тип_исключения": "Система.Данных.Sqlclient как.Sqlexception в",
"StackTrace": "в System.Data.SqlClient.SqlCommand. <> C.
"Свойство innerexception": {
"Сообщение": "произошла ошибка.",
"ExceptionMessage": "тайм-аут операции ожидания истек",
"ExceptionType": "Система.ComponentModel.Win32Exception",
"Трассировка стека": нуль
}
Поэтому мой вопрос заключается в том, как мне заставить код ждать, пока я не получу ответ от БД.
Есть ли какая-нибудь веб-конфигурация, которую я могу добавить, чтобы заставить код ждать?
Любые предложения/решения высоко ценятся.
Что я уже пробовал:
Я попытался установить параметр тайм-аута соединения в строке соединения на 3000 секунд.
Тайм-Аут Соединения=120;