Share via


Implantando um assembly personalizado

Para implantar um assembly personalizado no SQL ServerReporting Services, coloque o assembly nas pastas de aplicativo do Designer de Relatórios e do servidor de relatório. Por padrão, os assemblies personalizados recebem a permissão Execution no Reporting Services. Para conceder privilégios aos assemblies personalizados além da permissão Executar, você terá de editar o arquivo de configuração rssrvpolicy.config para o servidor de relatório e o arquivo de configuração rspreviewpolicy.config para a janela de visualização do Designer de Relatórios. Como alternativa, você poderá instalar o seu assembly no GAC (cache de assembly global).

ObservaçãoObservação

Existem dois modos de visualização para o Designer de Relatórios: a guia Visualizar e a janela pop-up que é iniciada quando o projeto de relatório é inicializado no modo DebugLocal. A guia Visualizar executa todas as expressões de relatório usando o conjunto de permissões FullTrust e não aplica configurações de diretiva de segurança. A janela pop-up de visualização foi desenvolvida para simular a funcionalidade do servidor de relatório e, portanto, tem um arquivo de configuração de diretiva que você ou um administrador devem modificar para usar assemblies e extensões personalizadas no Designer de Relatórios. Essa visualização pop-up também bloqueia o assembly personalizado. Dessa forma, será preciso fechar a janela de visualização para modificar ou atualizar o seu código de assembly personalizado.

Para implantar um assembly personalizado no Reporting Services

  1. Copie o seu assembly personalizado de seu local de compilação para a pasta bin do servidor de relatório ou para a pasta do Designer de Relatórios. O local padrão da pasta bin do servidor de relatório é C:\Arquivos de Programas\Microsoft SQL Server\MSSQL.3\Reporting Services\ReportServer\bin. O local padrão do Designer de Relatórios é C:\Arquivos de Programas\Microsoft Visual Studio 8\Common7\IDE\PrivateAssemblies.

    Se você salvar seu assembly personalizado na pasta bin do servidor de relatório, poderá publicar relatórios que façam referência ao seu assembly personalizado. Se você salvá-lo na pasta do Designer de Relatórios, poderá executar e depurar relatórios que façam referência ao seu assembly personalizado no Designer de Relatórios.

    Se você precisar conceder permissões ao seu código de assembly personalizado além das permissões padrão de execução:

  2. Abra o arquivo de configuração apropriado. O local padrão do arquivo rssrvpolicy.config é C:\Arquivos de Programas\Microsoft SQL Server\MSSQL\Reporting Services\ReportServer. O local padrão do arquivo rspreviewpolicy.config é C:\Arquivos de Programas\Microsoft Visual Studio 8\Common7\IDE\PrivateAssemblies.

  3. Adicione um grupo de códigos ao seu assembly personalizado. Para obter mais informações, consulte Desenvolvimento seguro (Reporting Services).

Atualizando assemblies personalizados

Em algum ponto, você pode precisar atualizar uma versão de um assembly personalizado que está sendo referenciado em vários relatórios publicados. Se esse assembly já existir no diretório bin do servidor de relatório ou do Designer de Relatórios e se o número da versão do assembly for incrementado ou alterado de alguma forma, os relatórios publicados atualmente não funcionarão mais. Você terá de atualizar a versão do assembly referenciado no elemento CodeModules da definição do relatório e republicar os relatórios. Se você souber que irá atualizar um assembly personalizado com freqüência e se os seus relatórios publicados atualmente precisarem de uma referência para o novo assembly, talvez queira considerar o uso do mesmo número de versão em todas as atualizações de uma assembly em particular.

Se você não precisar que os seus relatórios publicados atualmente façam referência à nova versão do assembly, poder implantar o seu assembly personalizado no cache de assembly global. O cache de assembly global pode manter diversas versões do mesmo assembly, para que os seus relatórios atuais possam fazer referência à versão anterior do seu assembly e para que os seus relatórios recém-publicados possam fazer referência ao assembly atualizado. Outra abordagem seria definir o redirecionamento de associação do servidor de relatório para impor um redirecionamento de todas as solicitações para o assembly antigo para o novo. Você precisaria modificar os arquivos Web.config arquivo e ReportService.exe.config do servidor de relatório. A entrada poderia ser assim:

<configuration>
   <runtime>
      <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
         <dependentAssembly>
            <assemblyIdentity name="myAssembly"
                              publicKeyToken="32ab4ba45e0a69a1"
                              culture="neutral" />
            <bindingRedirect oldVersion="1.0.0.0"
                             newVersion="2.0.0.0"/>
         </dependentAssembly>
      </assemblyBinding>
   </runtime>
</configuration>