Я работаю над проектом университетской группы, который ранее использовал MySQL, но команда решила перейти на MS SQL Server Express. Я единственный член команды, использующий Mac, поэтому я пытаюсь подключить проект к докеру. Я работаю в Visual Studio для Mac.
Я создал и запустил контейнер SQL Express 2017 с этим:
docker run -d --name sqlexpress -e 'ACCEPT_EULA = Y '-e' SA_PASSWORD = MSSQLContainer1 '-e' MSSQL_PID = Express '-p 1433: 1433 -d mcr.microsoft.com/mssql/server:2017-latest-ubuntu
Какиевыглядит следующим образом при запуске:
ИД КОНТЕЙНЕРА: e448f6e4df4
ИЗОБРАЖЕНИЕ: mcr.microsoft.com/mssql/server:2017-latest-ubuntu
КОМАНДА:"/ opt / mssql / bin / sqls…"
СОЗДАН: 21 час назад
СОСТОЯНИЕ: до 21 часа
ПОРТЫ: 0.0.0.0:1433->1433/tcp
ИМЕНА: sqlexpress
И когда я запускаю SQL Server внутри докера и вводу SELECT @@ VERSION:
Microsoft SQL Server 2017 (окончательная первоначальная версия)-CU16) (KB4508218) - 14.0.3223.3 (X64) 12 июля 2019 г. 17:43:08 Авторское право (C) 2017 Выпуск Microsoft Corporation Express (64-разрядная версия) в Linux (Ubuntu 16.04.6 LTS)
Я могу подключиться кв контейнер из Azure Data Studio или DBeaver без проблем и создать базу данных с именем HelpdeskSystem .
Но я не могуна всю жизнь заставьте наше приложение .NET Core подключаться к базе данных.
Это моя текущая строка подключения;хотя я пробовал разные варианты:
"Сервер = localhost \\ sqlexpress, 1433; База данных = HelpdeskSystem; Пользователь = sa; Пароль = MSSQLContainer1;"
Кроме того, вот как выглядит строка подключения, которую используют мои товарищи по команде на своих компьютерах с Windows (и я также попытался включить эти дополнительные свойства в мою строку):
"server = localhost \\ sqlexpress; База данных = HelpdeskSystem; Trusted_Connection = True; Интегрированная безопасность = True; MultipleActiveResultSets = true "
Когда я пытаюсь запустить модульный тест, требующий подключения к базе данных, я получаю следующее исключение:
InnerException: {System.Net.Sockets.SocketException (0x80004005): неопределенная ошибка: 0 в System.Data.SqlClient.SNI.SSRP.GetPortByInstanceName (String browserHostName, String instanceName) в System.Data.Sec. SNI.SNIProxy.CreateTcpHandle (сведения об источнике данных, Int64 timerExpire, объект callbackObject, логическая параллель)}
Сообщение: «Связано с сетью илиПри установке соединения с SQL Server произошла специфическая ошибка. Сервер не найден или не был доступен. Убедитесь, что имя экземпляра указано правильно и что SQL Server настроен для разрешения удаленных подключений. (поставщик: поставщик TCP, ошибка: 25 - строка подключения недопустима) "
Я не уверен, неверна ли моя строка или есть какая-либо другая основная проблема, препятствующая подключению веб-приложения, ноЯ определенно могу подключиться к контейнеру с помощью Azure Data Studio, поэтому не понимаю, почему веб-приложение не сможет.