使用C# ADOMD Connection连接离线.cub文件时出现连接错误求助
排查思路
修正连接字符串格式
连接离线.cub文件的ADOMDConnection字符串格式错误:不能直接将文件路径放在DataSource且无需Catalog参数(该参数针对SSAS实例中的数据库),同时要注意路径反斜杠的转义。正确格式需指定MSOLAP驱动,示例代码如下:ADOMDConnection aConnection = new ADOMDConnection(); // 用@符号避免转义,或把反斜杠写成\\ aConnection.ConnectionString = @"Provider=MSOLAP;Data Source=D:\Downloads\Market\updated.cub;"; aConnection.Open();检查MSOLAP驱动兼容性
确认安装了对应程序位数的Microsoft OLE DB Provider for Analysis Services(MSOLAP)驱动:64位程序需安装64位驱动,32位程序需安装32位驱动。可通过控制面板的「ODBC数据源」查看驱动是否存在。验证文件权限与完整性
- 确保程序运行账号对目标
.cub文件及所在目录有读取权限,比如服务账号、应用池账号需手动添加权限; - 用SQL Server Management Studio(SSMS)尝试打开该
.cub文件,若SSMS也无法加载,说明文件已损坏,需重新生成或修复。
- 确保程序运行账号对目标
排除SSAS实例干扰
报错提示指向“服务器运行状态”,可能连接字符串被误识别为连接SSAS实例而非本地文件。确保无环境变量、本地SSAS实例默认设置等干扰逻辑,严格使用指定驱动与文件路径的连接字符串。
内容的提问来源于stack exchange,提问作者longchang
相关产品推荐
相关产品推荐

