首页 > 解决方案 > SSRS 2008 和 System.Drawing FileIOPermissions

问题描述

我正在开发一份在具有动态图像的 SSRS 2008 服务器上使用的报告。图像的文件名是数据集中的字段之一,通过将图像源设置为 EXTERNAL 并使用存储图像的网络共享的文件 URI,我成功地获得了要显示的正确图像。

对于傻笑,假设 URI 是 file://server1/share/subfolder/image.jpg

现在我试图将该图像居中在图像框中,经过一番研究,这应该就像从图像框的宽度中减去图像的宽度一样简单,并将图像框的左侧填充设置为一半区别。很标准的东西。

但是,我遇到的问题是尝试使用 system.drawing 引用来访问图像文件。

我有以下代码,应该可以工作:

System.Drawing.Image.FromStream(System.Net.WebRequest.Create("file://server1/share/subfolder/image.jpg").GetResponse().GetResponseStream()).Width

...但事实并非如此。在报表生成器中,当我将该代码作为表达式放在文本框中(用于测试)时,我得到了非常有用的“#Error”。所以我拉下 rdl 文件并将其加载到 BIDS 中,在那里我可以看到真正的错误。真正的错误是:

请求“System.Security.Permissions.FileIOPermission、mscorlib、Version=2.0.0.0、Culture=neutral、PublicKeyToken=b77a5c561934e089”类型的权限失败。(rsRuntimeErrorInExpression)

...我明白为什么会这样,因为 .net 2.0 system.drawing 参考需要正确的权限集...但我不知道在哪里设置它。我认为它可能必须在多个地方:一个是我本地客户端上的 Report Builder 3.0 可以看到的地方,一个是 BIDS 可以看到的地方,另一个是报表服务器本身可以看到的地方。

感谢您提供的任何帮助!

标签: .netreporting-servicesssrs-2008

解决方案


推荐阅读