如何在C#中注册自定义数据提供程序

时间:2013-05-21 08:30:59

标签: c# reporting-services ado.net dataprovider

我们有提供数据的中间层。我们正在尝试编写自定义数据提供程序。我已经覆盖了SYstem.Data命名空间的接口,如IDbCommand,IdbConnection和生成的dll。

我们想注册dll.So,它应该在ssrs的数据源类型窗口中列出。

我们无法注册。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:4)

开发设置

在开发计算机上,需要将数据扩展的DLL安装在Visual Studio目录中。这将是:

C:\Program Files (x86)\Microsoft Visual Studio 8\Common7\IDE\PrivateAssemblies

在同一个文件夹中,您需要将数据扩展名添加到 RSReportDesigner.config ,如下所示: 在<Extensions> <Data>部分,添加以下行:

<Extension Name="MyDataExtension" Type="My.Name.Space.MyDataExtensionClass"/>

<Extensions> <Designer>部分,添加以下行:

<Extension Name="MyDataExtension" Type="Microsoft.ReportingServices.QueryDesigners.VDTQueryDesigner,Microsoft.ReportingServices.QueryDesigners"/>

您可能还需要为数据扩展添加Full Trust才能正常运行。编辑 RSPreviewPolicy.config 并添加以下代码安全组:

<CodeGroup class="UnionCodeGroup"
    version="1"
    PermissionSetName="FullTrust"
    Name="MyDataExtensionCodeGroup"
    Description="Code group for my data processing extension">
    <IMembershipCondition class="UrlMembershipCondition"
        version="1"
        Url="C:\Program Files (x86)\Microsoft Visual Studio 8\Common7\IDE\PrivateAssemblies\MyDataExtension.dll"
    />
</CodeGroup>

现在,您可以在Visual Studio中使用数据处理扩展。

服务器设置

在Reporting Services服务器上,需要在SQL Server Reporting Services目录中安装数据扩展DLL。这将是:

C:\Program Files\Microsoft SQL Server\MSSQL.1\Reporting Services\ReportServer\bin

ReportServer目录上方的主bin目录中,您需要将数据扩展名添加到 RSReportServer.config 。在<Extensions> <Data>部分,添加以下行:

<Extension Name="MyDataExtension" Type="My.Name.Space.MyDataExtensionClass"/>

要为DLL提供完全信任,请编辑 RSSrvPolicy.config 并添加以下代码安全组:

<CodeGroup class="UnionCodeGroup" 
    version="1"
    PermissionSetName="FullTrust"
    Name="MyDataExtensionCodeGroup"
    Description="Code group for my data processing extension">
    <IMembershipCondition class="UrlMembershipCondition"
        version="1"
        Url="C:\Program Files\Microsoft SQL Server\MSSQL.1\Reporting Services\ReportServer\bin\MyDataExtension.dll"
    />
</CodeGroup>