使用DacServices导出bacpac时出错

时间:2018-04-11 09:53:14

标签: c# azure-sql-database

我正在尝试使用代码导出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存储。

1 个答案:

答案 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文档。