Я пытаюсь экспортировать бакпак с кодом, но получаю сообщение об ошибке
Microsoft.SqlServer.Dac.DacServicesException: 'Database source is not a supported version of SQL Server tcp:xxxxxxx.database.windows.net,1433: test.'
Я могу экспортировать его с помощью SSMS (приложение уровня данных для экспорта) без каких-либо проблем.
Моя тестовая программа - C# .NET 4, импортировал Microsoft.SqlServer.Dac-x86 nuget.
Образец кода:
var azureServices = new DacServices($"Data Source = {source},1433;Initial Catalog=test;Integrated Security=False;User ID = {user};Password = {password}");
azureServices.Message += AzureServices_Message;
azureServices.ProgressChanged += AzureServices_ProgressChanged;
azureServices.ExportBacpac(Environment.CurrentDirectory + "test" + DateTime.Now.ToShortTimeString(), "test");
Что я делаю неправильно? Или Microsoft что-то сломала в Azure sql?
Обновлено: мне нужно загрузить bacpac локально, поэтому я не использую остальные API для экспорта в хранилище BLOB-объектов.
Вместо этого рассмотрите возможность использования REST API:
Запрос образца:
POST https://management.azure.com/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/sqlcrudtest-4799/providers/Microsoft.Sql/servers/sqlcrudtest-5961/databases/testdb/export?api-version=2014-04-01
Тело запроса:
{
"storageKeyType": "StorageAccessKey",
"storageKey": "sdlfkjdsf+sdlfkjsdlkfsjdfLDKFJSDLKFDFKLjsdfksjdflsdkfD2342309432849328479324/3RSD= = ",
"storageUri": "https://test.blob.core.windows.net/bacpacs/testbacpac.bacpac",
"administratorLogin": "dummyLogin",
"administratorLoginPassword": "Un53cuRE!",
"authenticationType": "SQL"
}
Для получения дополнительной информации прочтите документацию это.
Мне нужно загрузить bacpac локально, поэтому для этого также потребуется «этап загрузки».