我正在尝试为SSRS开发交付扩展。
我用一个类创建了一个dll。该类同时实现IExtension和IDeliveryExtension接口。我将生成的dll文件(MyExtension.dll
)复制到了报表的服务器bin文件夹中。它不在默认位置,但是应该没有问题:
D:\ SSRS \ MSRS13.MyInstanceName \ Reporting Services \ ReportServer \ bin
在rsreportserver.config中,我在扩展/传递中添加了它:
<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错误:实例化我的扩展报告服务器扩展时捕获到异常: Microsoft.ReportingServices.Diagnostics.Utilities.ServerConfigurationErrorException: Konfigurationsfehler beim Berichtsserver :。 -> System.IO.FileNotFoundException:无法加载文件或程序集 “ MyExtension.dll”或其依赖项之一。系统找不到 指定的文件。 库!ReportServer_0-1!1c78!02/18 / 2019-17:34:56 :: e错误:抛出 Microsoft.ReportingServices.Diagnostics.Utilities.NotEnabledException: , Microsoft.ReportingServices.Diagnostics.Utilities.NotEnabledException: 死于抗衰老。;
我将MyExtension.dll添加到GAC并重新启动了报表服务器。我已将dll文件的完全权限授予了SSRS Windows服务帐户,并确认该帐户可以看到它。仍然没有成功...
我想念什么?
答案 0 :(得分:0)
我终于找到了问题,它是.NET Framework版本。我的程序集是为.NET Framework 4.6.1编译的。 当我切换到.NET Framework 3.5时,一切正常。
Microsoft SQL Server报告服务(SSRS)通过包括自定义扩展名和自定义代码来支持扩展。但是,SSRS不支持基于Microsoft .NET Framework 4.x的程序集。因此,您不能加载.NET Framework 4.x程序集。
还有另一个问题,因为我无法引用使用.NET Framework 4.x构建的程序集...
无论如何,我希望这可以帮助某人...