Excel 2016连接SQL Server Analysis Services 2000遭主动拒绝问题
问题背景
- 环境:Windows 2010系统安装Excel 2016,尝试连接部署在Windows 2003系统上的SQL Server Analysis Services (SSAS) 2000
- 错误提示:
无法建立连接,因为目标机器主动拒绝它 - 对比验证:Windows 2003系统的Excel 2003、Win7系统的Excel 2010使用相同域用户账号通过Windows身份验证可正常连接
更新:SSMS连接时的详细错误栈
无法连接到MyServerName。无法建立连接。请确保服务器正在运行。(Microsoft.AnalysisServices.AdomdClient)
程序位置:
at Microsoft.AnalysisServices.AdomdClient.XmlaClient.OpenConnectionAndCheckIfSessionTokenNeeded(ConnectionInfo connectionInfo)
at Microsoft.AnalysisServices.AdomdClient.XmlaClient.<>c__DisplayClass95_0.b__0()
at Microsoft.AnalysisServices.AdomdClient.Platform.Security.TransparentUserContext.ExecuteInUserContextImpl[TResult](Func1 action) at Microsoft.AnalysisServices.AdomdClient.Platform.Security.UserContext.ExecuteInUserContext[TResult](Func1 action)
at Microsoft.AnalysisServices.AdomdClient.XmlaClient.OpenConnection(ConnectionInfo connectionInfo, Boolean& isSessionTokenNeeded)
at Microsoft.AnalysisServices.AdomdClient.XmlaClient.Connect(ConnectionInfo connectionInfo, Boolean beginSession)
at Microsoft.AnalysisServices.AdomdClient.AdomdConnection.XmlaClientProvider.Connect()
at Microsoft.AnalysisServices.AdomdClient.AdomdConnection.XmlaClientProvider.Microsoft.AnalysisServices.AdomdClient.AdomdConnection.IXmlaClientProviderEx.ConnectXmla()
at Microsoft.AnalysisServices.AdomdClient.AdomdConnection.ConnectToXMLA(Boolean createSession, Boolean isHTTP)
at Microsoft.AnalysisServices.AdomdClient.AdomdConnection.Open()
at Microsoft.SqlServer.Management.SqlStudio.Explorer.ObjectExplorerService.ValidateConnection(UIConnectionInfo ci, IServerType server)
at Microsoft.SqlServer.Management.UI.ConnectionDlg.Connector.ConnectionThreadUser()===================================
无法建立连接,因为目标机器主动拒绝它 192.168.50.19:2383 (System)程序位置:
at System.Net.Sockets.TcpClient..ctor(String hostname, Int32 port)
at Microsoft.AnalysisServices.AdomdClient.XmlaClient.GetTcpClient(IConnectivityOwner owner, ConnectionInfo connectionInfo)
排查与解决步骤
1. 端口与防火墙连通性检查
- SSAS 2000默认监听2383端口,从Windows 2010机器执行命令测试端口连通:
telnet 192.168.50.19 2383 - 若测试失败:
- 检查Windows 2003服务器的防火墙(系统自带或第三方安全软件),添加2383端口的入站允许规则
- 确认Windows 2010机器与目标服务器的网络路由正常,能ping通192.168.50.19
2. SSAS服务与实例配置验证
- 在Windows 2003服务器上打开「服务」控制台,确认
SQL Server Analysis Services (MSSQLSERVER)服务处于运行状态 - 通过「SQL Server 2000分析服务管理器」查看实例监听配置,确保未限制仅特定IP访问实例
3. 兼容性适配处理
- 新版AdomdClient驱动(Excel 2016、SSMS默认使用)与SSAS 2000存在兼容性差异:
- 安装SQL Server 2005向后兼容组件,该组件包含适配旧版SSAS的驱动程序
- Excel连接时,手动选择
SQL Server Analysis Services 2000驱动(若连接向导中提供选项)
4. 身份验证与SPN配置检查
- 若使用IP地址连接,Kerberos身份验证可能失效,尝试改用服务器NetBIOS名称或FQDN连接
- 在目标服务器执行
setspn -L <服务器名>,检查SSAS服务是否已注册正确的SPN(服务主体名称)
5. 加密协议调整
- 新版客户端默认启用的加密规则可能不被SSAS 2000支持:
- SSMS连接时,在「连接属性」中取消勾选「加密连接」选项
- Excel连接字符串中添加
Encrypt Password=False参数,禁用加密验证
内容的提问来源于stack exchange,提问作者user16049828

