SSRS在设计器中显示外部图片,但在应用程序中不显示

3

我尝试在报告中显示图片。代码方面一切正常,在另外两台电脑上测试过:都能够正常工作。但是在我的电脑上,当我设置图片路径为file:D:/koala.jpg时,我可以在设计器中看到它,但是当我运行应用程序时,它不会出现在报告中(出现了红色的十字架)。

但是,当我设置非本地文件的路径,比如任何地址http://..../koala.jpg时,它在设计器和应用程序中都可以正常工作。从数据库中获取的图片也能够正常显示。看起来唯一的问题就是在运行应用程序时本地文件的路径出了问题。路径正确,图片也没问题。

错误信息:

警告:图像“Image1”的MIMEType属性的值为“application/octet-stream”,这不是有效的MIMEType。(rsInvalidMIMEType) 警告:图像“Image1”的ImageData属性的值为“”,这不是有效的ImageData。(rsInvalidExternalImageProperty)

重要提示:

我在几台电脑上测试了这个应用程序,相同的程序在每台电脑上都能够正常工作,设计器和运行应用程序中都能够显示图像,使用的路径是`d:/koala.jpg',同一张图片(在他们本地硬盘上),唯独在我的电脑上只有在设计器中能够显示,但是无法在运行应用程序时显示。

这是否与服务器有关呢?因为在Reporting Services Configuration Manager中,我看到了“Use built in account: Report$myServer”,而在其他电脑上我只看到了“Report”。对不起我的问题有点乱,我试图找出问题所在已经很长时间了。

编辑1:

我发现了一些问题。当我在报表属性中使用自定义代码并使用文件路径将其读取到字节数组时,我遇到了权限和IO异常的问题。然而,当我执行相同操作,将文件读取到字节数组中,然后将其作为数据库而不是外部图像放入图像中,它可以正常工作。所以它会以某种方式工作,但我想知道为什么报告查看器尝试打开文件时它没有正常工作。

总结:

每当ReportViewer尝试自己打开我的PC上的文件(通过外部图像或自定义代码)时,我都会遇到权限问题。如果您能让我将我的本地文件路径作为外部图像路径,并使其在打开应用程序时正常工作,则奖励将授予该回答者。


你不能直接将图像拖放到项目图像文件中,让VS处理路径吗? - Snowlockk
路径是常量添加到元素,就像这样:'file:D:/koala.jpg',我可以在Visual Studio中看到此图像,但在运行应用程序时看不到它。 - kajojeq
2个回答

2
SSRS报表服务器无法访问您的本地文件。以下是您的选择:
  • 将图像嵌入报表中(.rdl较大且图像不共享)
  • 将图像保存在报表服务器上(发布后可以使用,但在本地无法使用)
  • 将图像保存在公开可访问的网站上
如果您正在使用SharePoint集成模式,则可以将图像保存到那里的文件夹中。对于本机模式,您可以将其保存在Report Manager中的文件夹中。

谢谢,但我必须从本地路径读取,如d:\koala.jpg。那么在其他计算机上,程序如何能够正常处理本地文件呢?我是否可能在报告服务器方面遇到了一些问题?我在报告服务配置工具中看到了一个区别:我的设置为:“Report $ mydb”(mydb是一个 SQL 服务器的名称),而在其他PC上只有“Report”。看起来我有几个服务器,也许这是一个线索? - kajojeq
其他用户要么可以访问共享驱动器,要么在他们的电脑上相同位置也有该图像的副本。您仍然需要使用我概述的选项之一来解决此问题。 - StevenWhite

0

很抱歉我的格式可能有点问题,因为我是新来的。

你能更改你的逻辑吗?

file:D:/koala.jpg

使用

"file:///"+"D:/koala.jpg"

请提供图像的正确路径...
如果可以,请告诉我它是否有效。
谢谢。

你能否将你的路径添加到数据库中,并尝试在表达式中使用该列,像这样:"file:///"+ Fields!column_name.value - B.Patel
不是路径问题。就像我说的一样:完全相同的程序在其他电脑上运行良好。 - kajojeq

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接