Я создал приложение ASP.NET Core, которое будет использовать SQL Server в качестве бэкэнда, установленного на локальном компьютере. Я использую Visual Studio для разработки веб-приложения ASP.NET Core и могу без проблем подключаться к SQL Server, если я запускаю приложение через Visual Studio.
После развертывания приложения в контейнере Docker, приложениене может связаться с SQL Server, который установлен на хост-компьютере.
Я включил соединение «TCP» и включил порт в «Дополнительные параметры брандмауэра» на моем локальном компьютере. Я могу подключиться к SQL Server с IpAddress вместе с PORT (IpAddress, PORT
)
Ниже приведена команда, которую я использую для развертывания образа внутри контейнера Docker:
docker run -d -p 5061:80 --name mycurrentserviceapicontainer mycurrentserviceapi --network="host"
Информация:
Я могу получить доступ к API, который не имеет подключения к БД, но API, который имеет функции, связанные с подключением к БД, вызывая проблему.
Проблема:
Истекло время ожидания соединения. Время ожидания истекло на этапе после входа в систему. Возможно, истекло время ожидания соединения, пока сервер завершит процесс входа в систему и ответит;Или это могло быть превышено время ожидания при попытке создать несколько активных соединений. Длительность попытки подключения к этому серверу составила - [Pre-Login] initialization = 5;квитирование = 435;[Логин] инициализация = 0;Аутентификация = 0;[Post-Login] complete = 14251;
Строка подключения:
Сервер = ipaddress, 49172; База данных = DockerDb; Пользователь = sa; Пароль = пароль; MultipleActiveResultSets =true
49172 - это порт TCP, который активировал этот порт во входящем правиле брандмауэра Windows и может подключаться через Sql Server Management Studio.
Я не уверен, почему я получаю эту проблему. Я искал много статей, ничего не помогло мне исправить эту проблему. Кто-нибудь сталкивался с этой проблемой? Пожалуйста, предоставьте свое предложение по этому вопросу.
Спасибо за ваше время.