C#创建PowerBI网关数据源失败:SQL Server证书链不受信任
解决PowerBI网关数据源SSL证书信任问题的思路
确认网关服务账户的证书信任存储
网关服务以NT SERVICE\PBIEgwService账户运行,该账户的证书信任范围和当前登录用户独立。需将SQL Server的CA证书导入网关服务器的本地计算机「受信任的根证书颁发机构」存储,而非当前用户的证书存储。校验连接字符串参数的正确性
确保传递给CreateDatasource()的连接字符串中,TrustServerCertificate=True参数格式正确(注意大小写),且无参数冲突(比如默认Encrypt=True时需确保信任参数生效)。可在代码中输出连接字符串的实际内容,确认参数已正确包含。统一网关与测试环境的SQL驱动版本
数据链接文件可能使用本地安装的SQL客户端,而网关服务依赖内置驱动。检查网关服务器上的SQL Server Native Client/ODBC驱动版本,确保与测试环境一致,或更新至支持证书信任配置的版本。排查网关服务的网络配置差异
尽管当前用户的数据链接能正常连接,网关服务可能通过代理访问SQL Server,代理拦截SSL流量导致证书验证失败。确认网关服务的代理、防火墙配置与当前用户环境一致。模拟网关服务账户的连接测试
使用psexec工具以NT SERVICE\PBIEgwService账户启动命令行,执行sqlcmd -S <SQL服务器地址> -U <用户名> -P <密码> -d <数据库名> -C命令(-C对应信任服务器证书),直接验证网关服务账户的连接能力。
内容的提问来源于stack exchange,提问作者Ben Schmalz
相关产品推荐
相关产品推荐

