У меня есть серверная часть. NET Core API, которая опубликована Azure. У меня также есть база данных сервера SQL, работающая на Azure, если я запускаю свое внутреннее приложение локально, оно успешно подключается к базе данных онлайн , чтение / запись et c работает нормально. Однако при запуске онлайн-бэкэнда каждый вызов API приводит к ошибке 500. При просмотре журналов возникает следующая ошибка, которая, вероятно, вызывает 500:
Microsoft.Data.SqlClient.SqlException (0x80131904): A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)
Таким образом, по какой-то причине серверная часть, размещенная на Azure, не имеет доступа к этой базе данных. На портале Azure моей онлайн-базы данных я добавил IP-адрес моего бэкэнда в исключение брандмауэра и проверил «Разрешить удаленные Azure подключения к серверу».
TLDR; все работает нормально локально, опубликованная версия на Azure не может подключиться / найти базу данных.
Изменить: это решено, спасибо всем, кто прокомментировал. (особая благодарность Джейсону!) Решением было использовать следующий формат строки подключения:
Data Source=tcp:servername.database.windows.net,1433;Initial Catalog=db;Persist Security Info=False;User ID=user;Password=mypassword;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;