我创建了一个程序集并在我的 Reporting Services 报告中引用了它。我在本地测试了报告(有效),然后将报告上传到报告服务器(无效)。
这是我编写的自定义代码引发的错误。
System.Security.SecurityException:请求“System.Security.Permissions.SecurityPermission,mscorlib,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089”类型的权限失败。在 System.Security.CodeAccessSecurityEngine.CheckNReturnSO(PermissionToken permToken, CodeAccessPermission demand, StackCrawlMark& stackMark, Int32 unrestrictedOverride, Int32 create) 在 System.Security.CodeAccessSecurityEngine.Assert(CodeAccessPermission cap, StackCrawlMark& stackMark) 在 System.Security.CodeAccessPermission.Assert() 在[Snipped Method Name] at ReportExprHostImpl.CustomCodeProxy.[Snipped Method Name] 失败的操作是:Demand 失败的第一个权限的类型是:System.Security.Permissions.SecurityPermission 失败的程序集区域是:
这个项目是我继承的,我不是很熟悉。虽然我确实有代码(现在),所以我至少可以使用它:)
我相信失败的代码是这样的:
Dim fio As System.Security.Permissions.FileIOPermission = New System.Security.Permissions.FileIOPermission(Security.Permissions.PermissionState.Unrestricted)
fio.Assert()
但是,这种东西也无处不在:
Private Declare Function CryptHashData Lib "advapi32.dll" (ByVal hhash As Integer, ByVal pbData As String, ByVal dwDataLen As Integer, ByVal dwFlags As Integer) As Integer
我可以看到其中任何一个都是 Reporting Services 无法开箱即用的东西。