【发布时间】:2008-11-11 16:41:40
【问题描述】:
我有一份 SSRS 2005 报告,其中包含许多图像。我包含图像的方式是我有一个图像对象,其 URL 在 value 属性中设置。实际图像由同一服务器上的 IIS 虚拟目录托管。我这样做是因为我需要根据报表中的数据使用表达式动态更改图像源。
问题是图像在 Visual Studio 中预览报表时效果很好,但在部署报表时不显示。当我查看 SSRS 呈现的 HTML 时,图像标签的 SRC 属性是一个空字符串。
【问题讨论】:
我有一份 SSRS 2005 报告,其中包含许多图像。我包含图像的方式是我有一个图像对象,其 URL 在 value 属性中设置。实际图像由同一服务器上的 IIS 虚拟目录托管。我这样做是因为我需要根据报表中的数据使用表达式动态更改图像源。
问题是图像在 Visual Studio 中预览报表时效果很好,但在部署报表时不显示。当我查看 SSRS 呈现的 HTML 时,图像标签的 SRC 属性是一个空字符串。
【问题讨论】:
我以前也遇到过这个问题。
您应该检查在部署报告时是否出现任何警告。 rsWarningFetchingExternalImages 警告意味着报告服务在匿名访问图像时遇到问题。这可能是因为在 IIS 中未正确配置匿名访问,或者在我的情况下,您托管的图像的 MIME 类型可能存在问题。我试图托管 PNG 文件,当我将图像更改为 GIF 时它工作了。
【讨论】:
在 IIS 中对该图像文件夹设置启用匿名身份验证。
【讨论】:
我绝不是 IIS 专家,这就是为什么我放弃转为 GIF 文件的原因,但根据我放弃前的研究,我可以告诉你,并非所有版本的 IIS 都支持 PNG MIME默认输入。我已经尝试按照http://www.hostmysite.com/support/dedicated/IIS/newmime/ 的指示将 PNG MIME 类型添加到我的虚拟目录中,但它对我不起作用。 (请记住在尝试此操作后重新部署,因为我认为这是 RS 协调图像 URL 的时候)也许对 MIME 类型有更多了解的人是 IIS 可能有一些输入。
【讨论】:
当未应用 Service Pack(2 或 3)时,我在 SSRS2005 上看到了这个问题。
【讨论】:
我遇到了同样的问题,我只是发现这是文件夹的授权问题。我必须在 web.config 文件中添加规则以允许所有用户访问图像
// 假设 Images 是要检索图像的文件夹
< location path="Images" >
< system.web >
< authorization >
< allow users="*" / >
< /authorization >
< /system.web >
< /location >
参考:http://msdn.microsoft.com/en-us/library/wce3kxhd(v=vs.100).aspx
【讨论】:
托管图像的文件夹需要对所有人都具有权限。此外,如果您在 Share Point 中部署报表,则需要将以下 web.config 添加到该文件夹中。
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<security>
<authentication>
<anonymousAuthentication enabled="true" />
</authentication>
</security>
</system.webServer>
</configuration>
【讨论】:
如果您使用的图像具有过大的 DPI,SSRS 会将其渲染得非常大,并且可能不会显示在图像框中,除非您将其属性设置为适合范围。
“SSRS 中的图像渲染被硬编码为 72 96DPI。不仅如此,它还会假设原始图像是 96DPI,因此最终渲染的 300DPI 图像将比预期大 3.1 倍”
【讨论】:
你的图片是透明PNG吗?它是否被放置在表格的单元格中?
一个常见的错误是将像 png 这样的图像放在文本框内。这将导致它在设计屏幕中显示但在预览中将停止工作的问题
【讨论】: