【问题标题】:Embedded Images in SSRS Reports not Displaying - Permissions IssueSSRS 报告中的嵌入图像未显示 - 权限问题
【发布时间】:2016-07-22 18:36:32
【问题描述】:

我在所有报告的顶部都有一个徽标作为嵌入图像。

这些报告通过 SSRS Web 服务接口显示在 ASP.Net Web 应用程序中 - 都是非常标准的东西,但图像不呈现 - 我只是得到一个损坏的链接。

对于这个问题有很多可能的解决方案,我已经尝试了一些方法,包括在 ConfigurationInfo 表中将 UseSessionCookies 设置为 false。

我注意到,当我将消费网络应用的匿名帐户从最低权限的服务帐户更改为我自己的用户帐户时,图像显示正常。

我不明白为什么会这样,也无法弄清楚我的网络应用的服务帐户需要哪些特殊权限才能查看报告中的嵌入图像。

有人可以帮忙吗?

【问题讨论】:

    标签: reporting-services permissions


    【解决方案1】:

    好的,问题解决了。有点儿。该问题不仅限于嵌入式图像,而且因为我没有使用 Reporting Services 查看器而发生。

    总结一下:

    1) 当您的 Web 应用程序调用报表服务器时,它完全有权这样做。生成的 SessionID 仅可用于 Web 应用程序帐户(即运行应用程序的服务帐户)。

    2) Web 应用将 RAW HTML4.0 输出到屏幕。

    3) 浏览器接收 HTML 并尝试检索 HTML 中引用的图像。

    4) 浏览器以您的用户帐户运行(例如 domain\username1)

    5) 报表服务器收到如下请求:

    6) 现在 URL 中列出的 SessionID 与域\用户名 1 没有关联,因此报表服务器声称它不存在。

    当您将应用程序域设置为使用域\用户名 1 帐户时,SessionID 恰好与您的帐户相关联,因此突然之间“工作”了。但当真正的用户尝试系统时,他们抱怨图像丢失,因为他们的域\用户名 N 与应用程序池帐户不匹配。

    这个问题的解决方法如下:

    1) 使用报表查看器控件。这将确保浏览器接收到的 URL 将指向您的 Web 应用程序,并且您的 Web 应用程序标识将用于从报表服务器检索它们。

    2) 在您的 Web 应用程序代码中,解析您从 Render 调用返回的 HTML4.0,获取并缓存所有图像,重新编写 HTML4.0 链接以指向您的 Web 存储的缓存图像应用程序,然后将其发送到浏览器(如果这看起来很复杂......然后使用报告查看器控件,因为它使场景工作)

    3) 您可以尝试使用 MHTML 输出格式,这将生成一个完全合格的报告,其中包含嵌入二进制流中的图像。这样做的结果是很难将其嵌入到应用程序页面中......但并非无法克服

    我选择使用 2) 的变体,因为我不想使用报表查看器。我尝试显示的徽标已托管在调用 Web 应用程序中,因此我只需将 SSRS 报告执行服务返回的响应中的 img 标记的 src 属性替换为该位置的 url。

    我真的不想使用建议的报告查看器作为解决此问题的最佳方法。为什么 SSRS 必须使用会话信息来返回像显示在所有报告上的徽标这样简单的东西,这超出了我的理解……花了很长时间才弄清楚这一点,而且解决方案并不是特别漂亮…… .

    【讨论】:

    • 参考文章的链接是:here
    • 编辑不让我提交上面第5)点的url。已经放弃尝试了,虽然不重要,但是你可以去原帖查看。
    【解决方案2】:

    这是外部图像吗?看看这个MSDN article,它解释了检索图像所需的权限:

    在报表设计器中预览报表时,预览使用 显示图像的用户凭据。报告运行时 在报表服务器上,报表服务器使用无人值守执行 用于检索图像的帐户。如果无人值守执行账户是 未指定,使用不使用凭据检索图像(匿名 用户帐号)。如果这些帐户中的任何一个没有足够的权利 访问图片,图片不会显示在报告中。

    我会在报告管理器中检查图像的权限。

    【讨论】:

    • 不,这是一个嵌入的图像——这就是我不明白的——图像数据嵌入在 rdl 文件中。当我将图像 url 粘贴到浏览器中时,出现 rsStreamNotFound 错误。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多