SSRS报告网页端无法显示Azure Blob存储的URL图片问题如何解决?
SSRS嵌入Azure Blob存储图片不显示问题解决方案
- 优先排查跨域资源共享(CORS)配置问题
这是最常见的触发原因:SSRS web站点域名和Azure Blob存储域名不同,浏览器默认会拦截跨域的静态资源请求。你可以到Azure Portal对应Blob存储的「资源共享(CORS)」设置页,添加一条规则:- 允许的源:填写你的SSRS web站点的完整域名(如
https://your-ssrs-site.com) - 允许的方法:勾选
GET - 允许的标头、公开的标头均可填
* - 最大年龄设置为
3600即可
保存后等待5分钟生效,再刷新报表测试。
- 允许的源:填写你的SSRS web站点的完整域名(如
- 检查SSRS站点外部资源白名单配置
SSRS默认会阻止未授权的外部图像加载,你需要登录SSRS web门户的管理后台:- 进入「站点设置」-「安全性」页面
- 找到「外部图像允许列表」配置项
- 将你的Azure Blob存储根域名(如
https://xxx.blob.core.windows.net)添加到允许列表中,保存后重启SSRS服务再测试。
- 排查混合内容拦截问题
如果你的SSRS站点使用HTTPS协议,但数据库中存储的Blob图片URL是HTTP协议,浏览器会自动拦截这类混合不安全内容,导致图片空白。你可以将所有存储的Blob URL统一替换为HTTPS协议开头的地址,即可解决该问题。 - 替代方案(绕开权限/跨域限制,无需配置无人参与账户)
针对你的SQL Server版本不支持Windows登录配置无人参与账户的情况,可以直接修改数据逻辑,在写入图片信息到SQL表时,同步新增一个ImageBase64字段,将Blob图片转成base64编码字符串存入该字段。在SSRS报表中做如下配置:- 图片控件的源选择「数据库」
- 字段选择
ImageBase64字段 - MIME类型根据图片格式选择
image/jpeg或image/png
该方案完全绕开外部资源加载的各类限制,兼容性最好,适合访问量不大的场景。
内容的提问来源于stack exchange,提问作者ALK
相关产品推荐
相关产品推荐

