SSRS '08 System.Security.Permissions.SecurityPermission ERROR

时间:2009-07-08 11:32:52

标签: visual-studio-2008 reporting-services permissions

我从商业智能开发工作室(Visual Studio 2008)中得到了一个相当令人沮丧的错误。我有一份包含4个子报告的报告,这些子报告可能包含也可能不包含数据,因此他们的HIDDEN属性由表达式控制:

=IIF(ReportItems![SOME TEXT BOX].Value = 0, TRUE, FALSE)

[SOME TEXT BOX]的内容是存储过程为其各自的子报告返回的行数,因此如果值为0,则包含子报告的矩形设置为HIDDEN = TRUE。

这适用于4个子报告中的3个,但由于某些原因,其中一个会导致此错误:

The hidden expression for [RECTANGLE CONTAINING SUB-REPORT] contains an error: 
Request for the permission of type 'System.Security.Permissions.SecurityPermission, mscorlib,
Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed

一些谷歌搜索显示这(显然)与访问权限有关,但大多数人似乎遇到与MS Sharepoint相关的错误,并且解决方案似乎不适用。

非常感谢任何帮助!

布赖恩

编辑:这只发生在'ReportItems![SOME TEXT BOX] .Value = 0'时返回TRUE,即没有行。

3 个答案:

答案 0 :(得分:3)

好的,所以我发现了这个问题的真正的原因;微软,以及他们无益的错误消息!但严重的是我收到此错误,因为我传递的是NULL值。

假设您已经阅读了我的初始问题,获取NULL的数据集就是填充[SOME TEXT BOX]的数据集,但是NULL不在填充[SOME TEXT BOX]的字段中。房子有点圆,但最后我到了那里!

答案 1 :(得分:0)

所以我找到了一个半解决方案:我转到了报表管理器URL,然后是网站设置,然后是安全性,并为我们域的所有成员添加了一个具有完全访问权限的新角色分配。按照:

http://msdn.microsoft.com/en-us/library/aa337385.aspx

这允许报告在已部署的Web应用程序中工作,但BIDS仍无法运行报告。嘿嘿,至少客户可以使用它,我可以通过报告管理器进行测试。

答案 2 :(得分:0)

当您将代码从.NET Framework 4.0迁移到4.5:权限 !!时,我发现了问题的真正原因。现在,默认情况下,ReportViewer中的权限受到更多限制。

修复。在您的代码中执行以下操作。

实例化报告查看器时,设置无限制模式:

            var myReport = new ReportViewer();

            System.Security.PermissionSet permissionReport = new System.Security.PermissionSet(System.Security.Permissions.PermissionState.Unrestricted);

            myReport.LocalReport.SetBasePermissionsForSandboxAppDomain(permissionReport);

完成!!