代码之家  ›  专栏  ›  技术社区  ›  JMarsch

ReportingServices:将自定义程序集与本地(RDLC)报表一起使用

  •  4
  • JMarsch  · 技术社区  · 15 年前

    我正在设计一个将在WinForm应用程序的本地模式(RDLC文件)中使用的报表。我有一个带有静态类的自定义程序集,该类具有一些我想在报表内部使用的函数(作为表达式)。

    我在RDL报告中找到了各种帮助,但是我的RDLC报告遇到了权限问题。

    运行时出现以下错误: “报告引用的代码模块(我的模块)不是受信任的程序集。”

    我知道这是某种代码安全问题,但我不知道该怎么做来解决它。我在网上看到的文档是针对RDL报告的,它指示我编辑特定于SQL Server的策略文件。我使用的是RDLC,所以不涉及SQL服务器。我需要做什么才能获得适当的权限?

    2 回复  |  直到 14 年前
        1
  •  6
  •   Dean Kuga    15 年前

    尝试使用 AddTrustedCodeModuleInCurrentAppDomain 方法 ReportViewer.LocalReport Property (reportviewer.localreport.addTrustedCodeModuleIncurrentAppDomain(“您的程序集”))。

    同时确保使用 AllowPartiallyTrustedCallers 程序集的属性([程序集:allowPartyTrustedCallers])。

        2
  •  3
  •   user523712    14 年前

    对于.NET 4.0,addTrustedCodeModuleIncurrentAppDomain方法已过时。Visual Studio 2010禁用此方法的调用。但是有 AddFullTrustModuleInSandboxAppDomain ReportViewer类(ReportViewer.LocalReport.AddFullTrustModuleInsandOxappDomain(MyAssemblyStrongName))的LocalReport属性中的方法。它需要程序集的强名称。当我从文件夹“bin”手动运行exe文件时,我的应用程序在Visual Studio中执行得很好,但我得到错误“报告引用了代码模块(我的模块),这不是可信的程序集”。它可能是什么?