问题标签 [adomd.net]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - ADOMD.Net 中的 AdomdConnection 类中缺少 ChangeEffectiveUser API(用于 SSAS 中的用户模拟)
我一直在尝试使用模拟检查用户在 SQL Server Analysis Services (SSAS) 服务器上的访问权限。
AdomdConnection 类具有以下实例方法来完成相同的操作:
这是相同的 MSDN 文档。
我按照这里的 NuGet 包说明在我的 C# 项目中添加了 ADOMD.Net,但是当我尝试使用 API 时,我根本看不到智能感知中的 API。
它给出了编译失败:
错误 CS1061“AdomdConnection”不包含“ChangeEffectiveUser”的定义,并且找不到接受“AdomdConnection”类型的第一个参数的扩展方法“ChangeEffectiveUser”(您是否缺少 using 指令或程序集引用?)
我错过了什么吗?
azure - 使用服务主体的 Azure 分析服务连接不起作用
我正在尝试使用 ADOMD 连接到 Azure 分析服务并使用服务主体进行身份验证。所以我做了以下工作:
- 在 AAD 中创建应用程序。
- 授予应用(服务主体)对 Azure 分析服务的读取权限。
下面是我连接到 Azure 分析服务的代码。
我能够获得有效的访问令牌,但在尝试打开连接时出现以下错误:
AdomdErrorResponseException:用户“app:xxxxxxx@xxxxxx”无权访问“adventureworks”数据库,或者该数据库不存在。
附加信息::
- 我已经验证通过 Azure 门户向服务主体授予 Azure 分析服务的权限(读者和也尝试过贡献)。
- 我用服务帐户(用户名和密码)尝试了相同的代码,它可以工作。
- 如果我从连接字符串中删除“Initial Catalog= Adventureworks”,那么我的连接将成功。但我不明白为什么分析服务权限没有传播到模型。
解析度:
愚蠢的是,我在发布此内容后就自己获得了解决方案。上面的第 3 点给了我一个线索。通过门户授予对 Azure 分析服务的权限不会传播到服务主体(Azuire AD 应用程序)的模型。
脚步:
- 在 Sql server Mgmt Studio 中打开 Azure 分析服务。
- 在目标模型中,转到Roles。
将服务主体添加到具有权限的所需角色中。服务主体以以下格式添加:
应用程序:[appid]@[tenantid]
示例:应用程序:8249E22B-CFF9-440C-AF27-60064A5743CE@86F119BE-D703-49E2-8B5F-72392615BB97
c# - 错误引用的程序集
尝试构建我的解决方案时出现以下错误。我很确定我以前在这台机器上做过,但已经好几个月了。我不确定在此期间可能发生了什么变化。
我试图通过 SSDT(卸载)安装程序和手动删除文件和注册表项以及 gacutil 从我的计算机中删除所有提及 8.0.700.0。该项目配置为使用 10.0,但我无法弄清楚它是如何知道首先存在 8.0.700.0 版本的。
据我所知,注册表、GAC 或版本 8.0.700.0 的程序集文件夹中没有任何内容。
知道这里发生了什么吗?
目前在 GAC
sql-server - SSIS 脚本组件作为源 Null 值
我在 SSIS 中有一个包,它使用 essbase 多维数据集中的 adomd.Net 加载数据。使用 2 列包可以正常工作,但是当我添加 3. 列包时失败。
错误信息说:
你调用的对象是空的。
第一行的第三列包含null和其他行中的一些值。
问题在 3. 列中的空值中查找。我尝试了这个 if 语句,但我得到的是空列而不是值。
c# - ADOMD.net - 读取 SSAS 表格多维数据集上的维度和度量信息
我是 SSAS 世界的新手。我想使用 ADOMD.net 库从多维数据集读取信息。我需要获取所有维度并获取与每个维度相交的度量列表。获取此信息的最佳方法是什么。
ado.net - SSAS 2014 + ADOMD.Net 上的 1 小时超时 - 但没有设置为一小时的超时
从 .Net 应用程序运行 ADOMD.Net 命令时,我遇到了一个神秘的 XMLA 超时错误。Visual Basic 例程遍历驻留在 SQL Server Analysis Services 2014 实例上的挖掘模型列表,并对每个模型执行交叉验证测试。每当交叉验证测试经过的时间达到 60 分钟标记时,XML for Analysis 解析器就会抛出一个错误,指出请求超时。对于花费不到一小时的任何日常操作,我可以使用相同的 ADOMD.Net 连接与相同的服务器和应用程序,而不会出现任何故障。这种情况的罪魁祸首往往是服务器上的 ExternalCommandTimeout 设置,默认为 3600 秒,即一小时。但是,在这种情况下,服务器上的所有以下超时属性都设置为零:CommitTimeout、ExternalCommandTimeout、ExternalConnectionTimeout、ForceCommitTimeout、IdleConnectionTimeout、IdleOrphanSessionTimeout、MaxIdleSessionTimeout 和 ServerTimeout。只有三个可用的超时属性,没有一个设置为一小时:MinldleSessionTimeout(当前为 2700)、DatabaseConnectionPoolConnectTimeout(现在为 60 秒)和 DatabaseConnectionPoolTimeout(为 120000)。MSDN 文档列出了另外三个在 SQL Server Management Studio 2017 中选中的高级属性不可见的超时属性:AdminTimeout、DefaultLockTimeoutMS 和 DatabaseConnectionPoolGeneralTimeout。前两个默认为无超时,第三个默认为一分钟。MSDN 还提到了一些“禁止”超时属性,例如 SocketOptions\ LingerTimeout、InitialConnectTimeout、ServerReceiveTimeout、ServerSendTimeout、其中都带有警告,“您不应该更改的高级属性,除非在 Microsoft 支持的指导下。” 不过,我看不到任何通过 SSMS 2017 GUI 设置这些的方法。
由于我真的用完了超时设置来尝试,我很难过如何纠正这种行为并允许我的 .Net 应用程序通过 ADOMD 等待这些交叉验证。很久以前,我能够通过将某些属性设置附加到连接字符串来解决一些神秘的 SSAS 超时问题,例如“Connect Timeout=0;CommitTimeout=0;Timeout=0”等等。然而,尝试以这种方式通过连接字符串分配 ExternalCommandTimeout 值会导致 XMLA 错误“无法识别 ExternalCommandTimeout 属性”。我没有以这种方式测试每一个 SSAS 服务器超时,但是这个异常表明 ADOMD.Net 连接字符串只能接受超时属性的一个子集。
我在某处错过了超时设置吗?有没有人知道还有什么可能导致这种深奥的错误?提前致谢。我已经尽可能长时间地把这个问题放在次要位置,并且现在真的需要修复它。我想知道 ADOMD.Net 是否有自己单独的超时设置,可能有不同的名称,但我找不到任何相关的文档......
c# - ADOMD 数据读取器加载时速度很慢
真的希望有人可以帮助我。
在我们的应用程序中,我有一个具有以下特征的 MDX 查询:
- 5个维度和2个措施
- 返回 160k 行
- 用 MDX 编写
- 执行时间为 34 秒。
尽管需要一段时间并返回大量行,但这是完全可以接受的,客户向我保证他们将使用所有数据。
当我试图访问我的应用程序中的数据时,问题就出现了。
- 使用 ADOMDConnection 连接到 OLAP 数据库效果很好
- 使用 ADOMDDatareader 创建数据读取器效果很好
- 通过 datareader 加载数据需要 5 分钟以上
即使我不将数据传输到数据集/数据表中,而是通过“dataReader.Read()”命令(通过 while 循环)简单地增加计数器,也需要 5 分钟以上。我尝试通过 ADOMDDataAdapter(6 分钟)和 Cellset(6 分钟 +)检索数据。
我的应用程序具有以下属性:
- 控制台应用程序(用于测试目的)
- 使用 VB.Net,也将在 C# 中进行测试
- 视觉工作室 2015
- SQL Server 2014
- Microsoft.AnalysisServices.AdomdClient v9.0.5
任何人都可以帮助我加快速度,或者只是指出我可以看到的方向吗?使用更新版本的 AdomdClient 会有所帮助吗?我可以完全使用的另一种技术?立方体中有什么我可以改进的吗?
谢谢!
powershell - 通过 Powershell 破坏格式字符串进行 SSAS 部署
通过 PowerShell 部署多维数据集时遇到问题,我不知道如何解决。在我的解决方案中,我对 FormatString: 采取了一些措施\£ #,##0;-\£ #,##0
。如果我通过 Visual Studio 正常部署它们,那么我在部署后从 SSAS 服务器中提取的 XMLA 将具有<FormatString>\£ #,##0;-\£ #,##0</FormatString>
良好的预期效果。但是,如果我通过 PowerShell 部署,则从服务器生成的 XMLA 是<FormatString>\£ #,##0;-\£ #,##0</FormatString>
.
我意识到问题在于£
被解析,但我不确定如何解决它。
这里的背景是我正在使用 Octopus Deploy,并且我在下面出现问题的地方提取了 PowerShell:
我做了一些调查,发现以下内容:
- PowerShell 生成的 xmla 文件(不在代码段中)具有正确的格式字符串
\£ #,##0;-\£ #,##0
- .asdatabase 文件也有正确的格式字符串
我怀疑在以下位置发生了一些事情:
或进一步向下:
任何帮助,将不胜感激。
PS:我在解决方案中设置格式字符串时尝试过使用它,但无法找到解决方案。请注意,我不能简单地使用“货币” b/c 服务器设置为英语(美国)。