SSRS 2022连接SQL Azure失败:Azure.Core程序集加载权限错误
问题描述
新部署的SSRS 2022运行在Windows Server 2022上,使用Microsoft Azure SQL Database连接类型连接Azure SQL数据库时,抛出以下错误:
Could not load file or assembly 'Azure.Core, Version=1.35.0.0, Culture=neutral, PublicKeyToken=92742159e12e44c8' or one of its dependencies. Failed to grant minimum permission requests. (Exception from HRESULT: 0x80131417)
已知情况:
- SSRS与SQL、Oracle等其他数据源连接正常
- 可通过SSMS使用MS Entra密码认证成功连接目标Azure数据库
- ReportServer数据库部署在其他服务器,运行状态正常
- 已尝试Stack Overflow相关帖子的方案,包括添加如下程序集重定向配置,但无效果:
<dependentAssembly> <assemblyIdentity name="Azure.Core" publicKeyToken="92742159e12e44c8" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-1.35.0.0" newVersion="1.35.0.0" /> </dependentAssembly>
更新信息
执行以下PowerShell命令扫描服务器上的Azure.Core.dll版本:
Get-ChildItem -Filter *.dll -Recurse | Select-Object -ExpandProperty VersionInfo
结果显示所有Azure.Core.dll版本为1.3500.23.45706,推测服务器缺少Version=1.35.0.0版本的程序集。
解决方案
1. 手动部署指定版本的Azure.Core.dll
- 下载Azure.Core 1.35.0正式版NuGet包,解压后找到
lib/net462/Azure.Core.dll(SSRS 2022基于.NET Framework 4.8,兼容该版本) - 将该DLL复制到SSRS安装目录的
Reporting Services\ReportServer\bin文件夹(默认路径通常为C:\Program Files\Microsoft SQL Server Reporting Services\SSRS\ReportServer\bin) - 重启SQL Server Reporting Services服务
2. 修正程序集重定向配置
原重定向配置指向不存在的1.35.0.0版本,修改为指向服务器上已有的1.3500.23.45706版本,并确保配置添加到ReportServer.exe.config和ReportingServicesService.exe.config两个文件中:
<dependentAssembly> <assemblyIdentity name="Azure.Core" publicKeyToken="92742159e12e44c8" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-1.35.0.0" newVersion="1.3500.23.45706" /> </dependentAssembly>
配置需放在两个config文件的<configuration>节点下的<runtime>节点内,若没有<runtime>节点则手动新建。
3. 检查并配置程序集权限
错误提示包含权限相关内容,需确保SSRS服务账户对DLL所在目录有读取权限:
- 右键SSRS安装目录的
bin文件夹,选择属性→安全 - 添加SSRS服务账户(默认是
NT SERVICE\ReportServer),赋予读取和执行、列出文件夹内容、读取权限 - 应用权限后重启SSRS服务
4. 修复SSRS安装
若以上方法无效,尝试修复SSRS 2022安装:
- 打开控制面板→程序和功能
- 找到Microsoft SQL Server 2022 Reporting Services,右键选择更改
- 选择修复选项,按向导完成修复后重启服务器
内容的提问来源于stack exchange,提问作者SteveB

