SSRS 2016订阅邮件交付选项加载失败:'extension Name'参数无效
针对你遇到的System.Web.HttpUnhandledException和rsInvalidParameter(参数'extension Name'的值无效)报错,哪怕SMTP测试邮件已经成功发送,还是有几个容易遗漏的配置点需要排查:
检查RSReportServer.config中的邮件扩展配置
打开报表服务器安装目录下的RSReportServer.config文件(默认路径:C:\Program Files\Microsoft SQL Server\MSRS13.MSSQLSERVER\Reporting Services\ReportServer),找到<DeliveryExtensions>节点下的默认邮件扩展配置段:<Extension Name="Report Server Email" Type="Microsoft.ReportingServices.EmailDeliveryProvider.EmailProvider,ReportingServicesEmailDeliveryProvider"> <Configuration> <RSEmailDPConfiguration> <!-- 此处为SMTP相关配置 --> </RSEmailDPConfiguration> </Configuration> </Extension>确保:
Name属性值Report Server Email没有拼写错误,且没有其他自定义扩展使用了相同的名称<RSEmailDPConfiguration>内的配置项完整(比如SMTPServer、From等),即使SMTP测试成功,订阅模块依赖的是这个配置文件里的设置,可能和配置管理器的临时测试设置存在差异
排查自定义交付扩展的冲突
如果你的SSRS安装了第三方交付扩展,检查这些扩展的Name值是否和默认邮件扩展重复,或者它们的Type属性引用的程序集是否存在/配置错误。可以尝试暂时注释掉非默认的扩展配置,重启SSRS服务后再测试订阅功能。确认SSRS服务账户的权限
SSRS服务运行账户需要具备读取RSReportServer.config文件的权限;如果SMTP服务器需要身份验证,要确保服务账户有对应的访问权限,或者在配置文件里正确配置了SMTPAuthenticate及相关账户信息。查看详细日志定位问题
打开SSRS的日志文件(默认路径:C:\Program Files\Microsoft SQL Server\MSRS13.MSSQLSERVER\Reporting Services\LogFiles),搜索包含rsInvalidParameter和extension Name的日志条目,里面会明确指出哪个扩展的参数存在问题,帮你快速定位根源。重启SSRS服务
有时候修改配置后需要重启报表服务器服务,才能让新配置完全生效——哪怕SMTP测试成功,订阅模块可能还在使用旧的配置缓存。
内容的提问来源于stack exchange,提问作者bryanbalmer

