Implantar 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 gravar e compilar sua extensão de entrega do Reporting Services em uma biblioteca do Microsoft .NET Framework, você deve copiar a extensão para o diretório apropriado e adicionar uma entrada ao arquivo de configuração apropriado do Reporting Services para que o servidor de relatório possa localizá-la.

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 do elemento Extension em extensões de entrega.

Atributo Descrição
Nome 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 comprimento máximo do atributo Name é de 255 caracteres. O nome deve ser exclusivo entre todas as entradas dento do elemento Extension de um arquivo de configuração. Se um nome duplicado estiver presente, o servidor de relatório retornará um erro.
Tipo Uma lista separada por vírgulas que inclui o namespace totalmente qualificado junto com o nome do assembly.
Visível Um valor false indica que a extensão de entrega não deve estar visível nas interfaces do usuário. Se o atributo não estiver incluído, o valor padrão será true.

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

Implantar a extensão no 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.

Implantar um assembly de extensão de entrega em 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\MSRS13.\<InstanceName>\Reporting Services\ReportServer\bin.

    Importante

    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 %ProgramFiles%\Microsoft SQL Server\MSRS13.\<InstanceName>\Reporting Services\ReportServer diretório. É necessário criar uma entrada no arquivo de configuração para o arquivo de assembly de extensão de entrega. Abra o arquivo de configuração com o Microsoft Visual Studio ou 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 entrada deve incluir um elemento Extension com valores para Name e Type e poderá 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írgula que inclui uma entrada para o namespace totalmente qualificado da classe que implementa a interface IDeliveryExtension, seguida pelo nome do 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 portal da Web, adicione um atributo Visible ao elemento Extension e defina-o como false.

  5. Por fim, adicione um grupo de códigos ao assembly personalizado que concede a permissão FullTrust para a extensão de entrega. Para fazer essa etapa, adicione o grupo de códigos ao arquivo rssrvpolicy.config localizado por padrão no %ProgramFiles%\Microsoft SQL Server\MSRS13.\<InstanceName>\Reporting Services\ReportServer. Seu grupo de códigos pode se parecer com o exemplo a seguir:

    <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\MSRS13.<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 segurança de acesso a código no SSRS, consulte Desenvolvimento seguro (Reporting Services)

Verificar 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 portal da Web e verificar se a extensão foi incluída na lista de extensões de entrega disponíveis para uma assinatura. Para obter mais informações sobre o portal da Web e assinaturas, consulte Assinaturas e entrega (Reporting Services).