我正在尝试使用代码导出bacpac,但我收到错误消息
Microsoft.SqlServer.Dac.DacServicesException:'数据库源不是SQL Server的支持版本tcp:xxxxxxx.database.windows.net,1433:test。'
我可以使用SSMS(导出数据层应用程序)导出它而不会出现任何问题。
我的测试程序是C#.NET 4,导入了Microsoft.SqlServer.Dac-x86 nuget。
Samplecode:
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");
我做错了什么?或者让微软在Azure sql中破解了什么?
编辑:我需要在本地下载bacpac,这就是为什么我不使用其余的api导出到blob存储。
答案 0 :(得分:0)
请考虑使用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"
}
有关详细信息,请参阅this文档。