SSAS 与 C# 中的 XMLA 同步 - SQL 2017 中断

SSAS sync with XMLA in C# - broken with SQL 2017

我有一些 C# 代码使用未记录的 Microsoft.AnalysisServices.Xmla.dll 库,它在 SQL 2016 SSAS 中运行良好。我生成 XMLA 脚本,然后执行:

XmlaClient clnt = new XmlaClient();
clnt.Connect(@"server\instance");
string out = clnt.Send(syncxml, null);
clnt.Disconnect();

其中 syncxml 是 XMLA 脚本。这已经运行了很长时间。现在,对于 SQL 2017 SSAS 实例,它会抛出错误 "This database contains features that are not supported by the current edition of the server or the compatibility level of the database"。

我将 .dll 升级到我能找到的最新版本 (16.1.3.0),它肯定是在 SQL 2017 年之后发布的。

我可以使用 SSMS 2017 毫无问题地同步模型,并且 SSMS 中的同步功能生成的脚本与代码中的 syncxml 相同 syncxml以上错误。

我认为这一定与 .dll 版本有关,但我无法在这些 2017 实例中使用它。两者都是版本 14.0.249.2,兼容级别 1200。

更新:如果我 运行 来自简单控制台应用程序的相同代码,它会工作,它已停止在 ASP.NET 核心应用程序中工作。神秘.

我终于找到了真正的原因。我在 ASP.Net 核心中有这个 Startup.cs:

var cultureInfo = new CultureInfo("en-US");
CultureInfo.DefaultThreadCurrentCulture = cultureInfo;

在混合 German/English 环境中,这就是问题所在。删除这些行,重新部署应用程序,问题就消失了。这显然是 MS 端某处的错误。我注意到,因为在 SSMS 中手动运行同步以德语传送 SQL 探查器消息,但我的英语同步失败。我从应用程序中删除了以上几行,现在消息是德语的,但它有效。