【发布时间】:2019-02-18 17:12:35
【问题描述】:
我正在尝试为 SSRS 开发交付扩展。
我用一个类创建了一个 dll。该类实现了 IExtension 和 IDeliveryExtension 接口。我将构建的 dll 文件 (MyExtension.dll) 复制到报告的服务器 bin 文件夹中。它不在默认位置,但应该不是问题:
D:\SSRS\MSRS13.MyInstanceName\Reporting Services\ReportServer\bin
在 rsreportserver.config 中,我在 Extensions/Delivery 中添加了这个:
<Extensions>
<Delivery>
<Extension Name="My Extension" Type="My.Extensions.MyExtension,MyExtension" Visible="true" />
在 rssrvpolicy.config 我有这样的东西:
<CodeGroup class="UnionCodeGroup" version="1" PermissionSetName="FullTrust">
<IMembershipCondition class="UrlMembershipCondition" version="1" Url="$CodeGen$/*" />
</CodeGroup>
<CodeGroup class="UnionCodeGroup" version="1" PermissionSetName="FullTrust" Name="MyCustomCodeGroup" Description="trying out delivery extension">
<IMembershipCondition class="UrlMembershipCondition" version="1" Url="D:\SSRS\MSRS13.MyInstanceName\Reporting Services\ReportServer\bin\MyExtension.dll" />
</CodeGroup>
我在创建新订阅时看不到扩展。在日志中我不断收到此错误:
extensionfactory!ReportServer_0-1!155c!02/18/2019-17:34:56:: e 错误:在实例化 My Extension 报告服务器扩展时遇到异常: Microsoft.ReportingServices.Diagnostics.Utilities.ServerConfigurationErrorException: Konfigurationsfehler beim Berichtsserver: . ---> System.IO.FileNotFoundException:无法加载文件或程序集 “MyExtension.dll”或其依赖项之一。系统找不到 指定的文件.. library!ReportServer_0-1!1c78!02/18/2019-17:34:56::e 错误:投掷 Microsoft.ReportingServices.Diagnostics.Utilities.NotEnabledException: , Microsoft.ReportingServices.Diagnostics.Utilities.NotEnabledException: Die angeforderte Funktionalität ist zurzeit nicht aktiviert.;
我将 MyExtension.dll 添加到 GAC 并重新启动报表服务器。我将 dll 文件的完全权限授予 SSRS windows 服务帐户,并验证该帐户可以看到它。还是没有成功...
我错过了什么?
【问题讨论】:
-
这可能表明您的自定义扩展类正在引用未部署在该服务器上的程序集。
-
非常感谢您的提示!我检查了一下——程序集只引用了 Microsoft.ReportingServices.Interfaces.dll。此库位于报表服务器的 bin 文件夹中。
-
看看这个答案。它与为订阅中的报告定义的多种语言或与预期不同的语言有关,也许这是相似的? --> stackoverflow.com/questions/46563378/…
-
感谢您的链接,我会检查一下。服务器语言环境是瑞士德语,所以它肯定与此有关。
-
我检查了链接,它似乎不相关。我想知道 dll 是否可能需要一些资源文件或类似的东西,因此它对服务器不可见......
标签: reporting-services subscription extensibility