Implantando uma extensão de entrega

As extensões de entrega fornecem suas informações de configuração na forma de um arquivo de configuração XML. O arquivo XML é compatível com o esquema XML definido para extensões de entrega. As extensões de entrega oferecem infraestrutura para a definição e para a modificação do arquivo de configuração.

Se uma extensão de entrega for substituída ou atualizada, todas as assinaturas que a referenciam permanecerão válidas.

Depois de escrever e de compilar a sua extensão de entrega do Reporting Services em uma biblioteca do Microsoft .NET Framework, você precisará copiar a extensão para o diretório apropriado e adicionar uma entrada ao arquivo de configuração do Reporting Services adequado para que o servidor de relatório possa localizá-lo.

Elemento de extensão do arquivo de configuração

As extensões de entrega que você implanta no servidor de relatório precisam ser inseridas como elementos Extension no arquivo de configuração. O arquivo de configuração para o servidor de relatório é RSReportServer.config.

A tabela a seguir descreve os atributos para o elemento Extension para extensões de entrega.

Atributo

Descrição

Name

Um nome exclusivo para a extensão (por exemplo "Email do Servidor de Relatório" para a extensão de entrega de email ou "FileShare do Servidor de Relatório" para a extensão de entrega do compartilhamento de arquivo). O tamanho máximo do atributo Name é de 255 caracteres. O nome deve ser exclusivo entre todas as entradas do elemento de Extension de um arquivo de configuração. Se um nome duplicado estiver presente, o servidor de relatório retornará um erro.

Type

Uma lista separada por vírgulas que inclui o namespace totalmente qualificado junto com o nome do assembly.

Visible

Um valor false indica que a extensão de entrega não deve ser visível nas interfaces do usuário. Se o atributo não for incluído, o valor padrão será true.

Para obter mais informações sobre o arquivo RSReportServer.config, consulte Arquivos de configuração (Reporting Services).

Implantando a extensão para o Servidor de Relatório

O servidor de relatório usa extensões de entrega para processamento e entrega de notificações ou de relatórios. Implante o seu assembly de extensão de entrega para o servidor de relatório como um assembly privado. Também será preciso criar uma entrada no arquivo de configuração do servidor de relatório, RSReportServer.config.

Para implantar um assembly de extensão de entrega para um servidor de relatório

  1. Copie o assembly do local de preparação para o diretório bin do servidor de relatório no qual você deseja usar a extensão de entrega. O local padrão do diretório bin do servidor de relatório é %ProgramFiles%\Microsoft SQL Server\MSRS10_50.<Nome_da_instância>\Reporting Services\ReportServer\bin.

    Observação importanteImportante

    Se você estiver tentando substituir um assembly de extensão de entrega existente, primeiro deverá parar o serviço Servidor de Relatório antes de copiar o assembly atualizado. Reinicie o seu serviço depois de terminar de copiar o assembly.

  2. Depois que o arquivo do assembly for copiado, abra o arquivo RSReportServer.config. O arquivo RSReportServer.config está localizado no diretório %ProgramFiles%\Microsoft SQL Server\MSRS10_50.<Nome_da_instância>\Reporting Services\ReportServer. É necessário criar uma entrada no arquivo de configuração para o arquivo de assembly de extensão de entrega. Você pode abrir o arquivo de configuração com o Microsoft Visual Studio ou com um editor de texto simples, como o Bloco de notas.

  3. Localize o elemento Delivery no arquivo RSReportServer.config. Uma entrada para a sua extensão de entrega recém-criada deve ser feita no seguinte local:

    <Extensions>
       <Delivery>
          <Your extension configuration information goes here>
       </Delivery>
    </Extensions>
    
  4. Adicione uma entrada para a sua extensão de entrega. A sua entrada deve incluir um elemento Extension com valores para Name e Type e poderia ser assim:

    <Extension Name="My Delivery Extension Name" Type="CompanyName.ExtensionName.MyDeliveryExtensionClass, AssemblyName" />
    

    O valor de Name é o nome exclusivo da extensão de entrega. O valor de Type é uma lista separada por vírgulas que inclui uma entrada para o namespace totalmente qualificado da sua classe que implementa a interface IDeliveryExtension, seguida pelo nome do seu assembly (não incluindo a extensão de arquivo .dll). Por padrão, as extensões de entrega ficam visíveis. Para ocultar uma extensão de interfaces do usuário, como o Gerenciador de Relatórios, adicione um atributo Visible ao elemento Extension e defina-o como false.

  5. Por fim, adicione um grupo de códigos ao seu assembly personalizado que concede permissão FullTrust para a sua extensão de entrega. Faça isso adicionando o grupo de códigos ao arquivo rssrvpolicy.config localizado por padrão em %ProgramFiles%Microsoft SQL Server\MSRS10_50.<Nome_da_instância>\Reporting Services\ReportServer. O grupo de códigos pode ter esta aparência:

    <CodeGroup class="UnionCodeGroup"
       version="1"
       PermissionSetName="FullTrust"
       Name="MyExtensionCodeGroup"
       Description="Code group for my delivery extension">
          <IMembershipCondition class="UrlMembershipCondition"
             version="1"
             Url="C:\Program Files\Microsoft SQL Server\MSRS10_50.<InstanceName>\Reporting Services\ReportServer\bin\MyExtensionAssembly.dll"
           />
    </CodeGroup>
    

    A associação da URL é somente uma das condições de associação que você pode escolher para a sua extensão de entrega. Para obter mais informações sobre a segurança de acesso a código no SSRS, consulte Desenvolvimento seguro (Reporting Services).

Implantando a Extensão no Gerenciador de Relatórios

Se a sua extensão de entrega implementar a interface ISubscriptionBaseUIUserControl, a sua extensão de entrega poderá ser usada com a página de Assinatura do Gerenciador de Relatórios. Para disponibilizar a interface do usuário de assinatura, você precisa implantar a sua extensão no Gerenciador de Relatórios.

Para implantar um assembly de extensão de entrega no Gerenciador de Relatórios

  1. Copie o seu assembly do seu local de preparação para o diretório bin do Gerenciador de Relatórios. O local padrão do diretório bin do Gerenciador de Relatórios é %ProgramFiles%\Microsoft SQL Server\MSRS10_50.<Nome_da_instância>\Reporting Services\ReportManager\bin.

  2. Depois que o arquivo do assembly for copiado, abra o arquivo RSReportServer.config. O arquivo RSReportServer.config está localizado no diretório %ProgramFiles%\Microsoft SQL Server\MSRS10_50.<Nome_da_instância>\Reporting Services\ReportServer. É necessário criar uma entrada no arquivo de configuração para o arquivo de assembly de extensão de entrega. Você pode abrir o arquivo de configuração com o Visual Studio .NET ou com um editor de texto simples, como o Bloco de notas.

  3. Localize o elemento DeliveryUI no arquivo RSReportServer.config. Uma entrada para a sua extensão de entrega recém-criada deve ser feita no seguinte local:

    <Extensions>
       <DeliveryUI>
          <Your extension configuration information goes here>
       </DeliveryUI>
    </Extensions>
    
  4. Adicione uma entrada para a sua extensão de entrega. A sua entrada deve incluir um elemento Extension com valores para Name e Type e poderia ser assim:

    <Extension Name="My Delivery Extension Name" Type="CompanyName.ExtensionName.MyDeliveryUIExtensionClass, AssemblyName" />
    

    O valor de Name é o nome exclusivo da extensão de entrega. O valor de Type é uma lista separada por vírgulas que inclui uma entrada para o namespace totalmente qualificado da sua classe que implementa a interface ISubscriptionBaseUIUserControl, seguida pelo nome do seu assembly (não incluindo a extensão de arquivo .dll).

    Observação importanteImportante

    O valor do atributo Name deve ser idêntico para as entradas de arquivo de configuração do Servidor de Relatório e do Gerenciador de Relatórios. Se não forem idênticas, a configuração do seu servidor não será válida.

    Por fim, adicione um grupo de códigos ao seu assembly personalizado que concede permissão FullTrust para a sua extensão de entrega. Faça isso adicionando o grupo de códigos ao arquivo RSmgrpolicy.config localizado por padrão em C:\Arquivos de Programas\Microsoft SQL Server\MSRS10_50.<Nome_da_instância>\Reporting Services\ReportManager. O grupo de códigos pode ter esta aparência:

    <CodeGroup class="UnionCodeGroup"
       version="1"
       PermissionSetName="FullTrust"
       Name="MyExtensionCodeGroup"
       Description="Code group for my delivery UI extension">
          <IMembershipCondition class="UrlMembershipCondition"
             version="1"
             Url="C:\Program Files\Microsoft SQL Server\MSRS10_50.<InstanceName>\Reporting Services\ReportManager\bin\MyExtensionAssembly.dll"
           />
    </CodeGroup>
    

    A associação da URL é somente uma das condições de associação que você pode escolher para a sua extensão de entrega. Para obter mais informações sobre a segurança de acesso a código no SSRS, consulte Desenvolvimento seguro (Reporting Services).

Verificando a implantação

Você pode verificar se sua extensão de entrega foi implantada com êxito no servidor de relatório usando o método ListExtensions do serviço Web. Você também pode abrir o Gerenciador de Relatórios e verificar se a sua extensão foi incluída na lista de extensões de entrega disponíveis para uma assinatura. Para obter mais informações sobre o Gerenciador de Relatórios e assinaturas, consulte Assinatura e entrega (Reporting Services).