Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reporting services SSRS报告中的嵌入图像未显示-权限问题_Reporting Services_Permissions - Fatal编程技术网

Reporting services SSRS报告中的嵌入图像未显示-权限问题

Reporting services SSRS报告中的嵌入图像未显示-权限问题,reporting-services,permissions,Reporting Services,Permissions,我的所有报告顶部都有一个徽标,作为嵌入图像 这些报告通过SSRSWeb服务界面显示在ASP.NETWeb应用程序中-所有这些都是非常标准的东西,但图像没有呈现-我只是得到一个断开的链接 这个问题有很多可能的解决方案,我也尝试过一些方法,包括在ConfigurationInfo表中将UseSessionCookies设置为false 我注意到,当我将消费web应用的匿名帐户从特权最低的服务帐户更改为我自己的用户帐户时,图像显示良好 我不明白为什么会这样,也无法确定我的web应用服务帐户需要哪些特殊

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

这些报告通过SSRSWeb服务界面显示在ASP.NETWeb应用程序中-所有这些都是非常标准的东西,但图像没有呈现-我只是得到一个断开的链接

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

我注意到,当我将消费web应用的匿名帐户从特权最低的服务帐户更改为我自己的用户帐户时,图像显示良好

我不明白为什么会这样,也无法确定我的web应用服务帐户需要哪些特殊权限才能查看报表中的嵌入图像


有人能帮忙吗

这是外部图像吗?请看以下内容,其中解释了检索图像所需的权限:

在报表设计器中预览报表时,预览将使用 显示图像的用户的凭据。当报告运行时 在报表服务器上,报表服务器使用无人参与执行 帐户以检索图像。如果无人参与执行帐户为 未指定,将不使用凭据(匿名)检索图像 用户帐户)。如果其中任何一个帐户没有足够的权限 访问图像时,图像将不会显示在报告中


我将在报表管理器中检查图像的权限。

好,问题已解决。有点问题不仅限于嵌入的图像,而且是因为我没有使用reporting services查看器而出现的

总结如下:

1) 当您的web应用程序调用报表服务器时,它将获得完全授权。生成的SessionID仅对web应用程序帐户(即运行应用程序的服务帐户)可用

2) web应用程序将原始HTML4.0输出到屏幕

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

4) 浏览器作为您的用户帐户运行(例如域\用户名1)

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

6) 现在,URL中列出的SessionID与domain\username1没有关联,因此报表服务器声称它不存在

当您将应用程序域设置为使用domain\username1帐户时,SessionID恰好与您的帐户相关联,因此会突然出现“工作”情况。但当真正的用户尝试该系统时,他们会抱怨图像丢失,因为他们的domain\usernameN与应用程序池帐户不匹配

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

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

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

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

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


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

不,这是一个嵌入的图像-这是我不理解的-图像数据嵌入到rdl文件中。当我将图像url粘贴到浏览器中时,出现rsStreamNotFound错误。指向引用文章的链接为:。编辑器不允许我提交上述第5)点的url。我已经放弃了尝试,这并不重要,但是你可以通过阅读原始文章来查看它。