我创建了一个程序集并在我的报表服务报告中引用它。我在本地测试过报告(可用),然后将报告上传到报告服务器(不可用)。
以下是我编写的自定义代码抛出的错误消息:
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()中。 在 [剪切的方法名称] 中。 在 ReportExprHostImpl.CustomCodeProxy。[剪切的方法名称] 中。 失败的操作是:Demand。 第一个失败的权限类型是:System.Security.Permissions.SecurityPermission。 失败的程序集区域是:MyComputer
这个项目是我继承而来的,我对它不是非常熟悉。尽管我现在有了代码,所以至少可以使用它 :)
我认为失败的代码是这段:
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默认情况下无法适应的事情。