SSRS跨服务器访问共享文件夹图片权限问题排查
解决SSRS部署后无法加载共享文件夹图片的问题
核心原因
Visual Studio开发时以你的本地用户权限访问共享文件夹,部署后SSRS服务则以自身服务账户运行,该账户大概率缺少共享文件夹的访问权限;同时SSRS默认安全配置可能限制了本地/共享文件的访问。
具体解决方案
1. 配置SSRS服务账户的共享权限
- 打开SSRS服务器的「服务」(
services.msc),找到SQL Server Reporting Services (实例名),查看其登录账户(默认多为NT SERVICE\ReportServer)。 - 前往存储图片的服务器,对目标共享文件夹设置权限:
- 右键文件夹→「属性」→「共享」→「高级共享」→「权限」,添加SSRS服务账户并勾选「读取」权限。
- 切换到「安全」选项卡,同样添加该账户并赋予「读取」权限。
2. 修改SSRS配置文件放宽文件访问限制
- 找到SSRS安装目录下的
rsreportserver.config(默认路径示例:C:\Program Files\Microsoft SQL Server\MSRS15.MSSQLSERVER\Reporting Services\ReportServer,版本号随SQL Server版本变化)。 - 在
<Security>节点下的<Extension>组中,添加或修改FileShare扩展配置:<Extension Name="FileShare" Type="Microsoft.ReportingServices.FileShareDeliveryProvider.FileShareProvider,ReportingServicesFileShareDeliveryProvider"> <Configuration> <FileShareConfiguration> <AllowedFileExtensions>*.jpg;*.jpeg;*.png</AllowedFileExtensions> <AllowedPaths>\\WEB01\uploads\Site</AllowedPaths> </FileShareConfiguration> </Configuration> </Extension>- 若已有该节点,确保
AllowedPaths包含你的共享文件夹路径;生产环境不建议设为*允许所有路径。
- 若已有该节点,确保
- 修改完成后重启SSRS服务。
3. 调整报表内的图片路径格式
将原file://格式改为UNC路径,SSRS对UNC路径的支持更稳定:
="\\WEB01\uploads\Site\" & Fields!SiteId.Value & ".jpg"
4. 启用SSRS外部图像访问权限
- 打开SSRS报表管理器(
http://服务器名/Reports),进入「站点设置」→「安全性」→「设置项」。 - 确认「允许从外部URL加载图像」已启用,或把共享服务器地址添加到信任列表。
内容的提问来源于stack exchange,提问作者arresteddevelopment
相关产品推荐
相关产品推荐

