我尝试在报告中显示图片。代码方面一切正常,在另外两台电脑上测试过:都能够正常工作。但是在我的电脑上,当我设置图片路径为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上的文件(通过外部图像或自定义代码)时,我都会遇到权限问题。如果您能让我将我的本地文件路径作为外部图像路径,并使其在打开应用程序时正常工作,则奖励将授予该回答者。