能否通过Npgsql从SSRS连接PostgreSQL?配置后数据源类型未显示
问题分析与解决方案
可能的操作失误
- 配置代码语法错误:你贴出的
machine.config配置片段不完整,<add>标签未闭合且属性排版错误。完整的合法配置节点应为:<add name="Npgsql Data Provider" invariant="Npgsql" description=".Net Framework Data Provider for PostgreSQL" type="Npgsql.NpgsqlFactory, Npgsql, Version=8.0.1.0, Culture=neutral, PublicKeyToken=5d8b90d52f46fda7" /> - 版本与公钥不匹配:确保
machine.config中填写的Version和PublicKeyToken与GAC中实际注册的Npgsql程序集完全一致。可通过命令gacutil -l Npgsql或查看C:\Windows\assembly目录确认准确信息。 - 未覆盖对应架构配置:SSRS默认以32位模式运行,除修改
Framework64下的machine.config,必须同步修改x86架构的配置文件(路径:C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\machine.config)。 - 未重启SSRS服务:修改
machine.config后,需重启SQL Server Reporting Services服务,新的DbProviderFactory配置才能生效。
正确的SSRS连接PostgreSQL方法
若修正后仍未显示目标数据源类型,可采用手动指定方式:
- 在SSRS共享数据源配置界面,选择**“.NET Framework Data Provider”**作为数据源类型。
- 填写Npgsql格式的连接字符串:
Server=你的PostgreSQL服务器地址;Port=5432;Database=目标数据库名;User Id=用户名;Password=密码; - 在“凭据”选项卡配置对应登录信息,测试连接即可。
内容的提问来源于stack exchange,提问作者StrangerV
相关产品推荐
相关产品推荐

