Compartilhar via


Implantando uma assembly personalizada

Para implantar um assembly personalizado no SQL Server Reporting Services, coloque o assembly nas pastas de aplicativo do Designer de Relatórios e do servidor de relatório. Por padrão, assemblies personalizados recebem Execution permissão no Reporting Services. Para conceder privilégios de assemblies personalizados além da permissão Executar, você precisará 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ê pode instalar seu assembly personalizado no GAC (cache de assembly global).

Observação

Há dois modos de visualização para o Designer de Relatórios: a guia Visualização e a janela de visualização pop-up que é iniciada quando o projeto de relatório é iniciado no DebugLocal modo. A guia Visualização executa todas as expressões de relatório usando o FullTrust conjunto de permissões e não aplica as configurações de política de segurança. A janela de visualização pop-up destina-se a simular a funcionalidade do servidor de relatório e, portanto, tem um arquivo de configuração de política que você ou um administrador deve modificar para usar assemblies personalizados no Designer de Relatórios. Essa visualização pop-up também bloqueia o assembly personalizado. Portanto, você precisa fechar a janela de visualização para modificar ou atualizar seu código de assembly personalizado.

Para implantar um assembly personalizado no Reporting Services
  1. Copie o assembly personalizado do seu local de build para a pasta de compartimento do servidor de relatório ou a pasta Designer de Relatórios. O local padrão da pasta bin para o servidor de relatório é %ProgramFiles%\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\ReportServer\bin. O local padrão do Designer de Relatórios é %ProgramFiles%\Microsoft Visual Studio 9.0\Common7\IDE\PrivateAssemblies.

    Colocar seu assembly personalizado na pasta de compartimento do servidor de relatório permite que você publique relatórios que fazem referência ao assembly personalizado e colocá-lo na pasta Designer de Relatórios permite que você execute e depure relatórios que referenciam seu assembly personalizado no Designer de Relatórios.

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

  2. Abra o arquivo de configuração apropriado. O local padrão de rssrvpolicy.config é %ProgramFiles%\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\ReportServer. O local padrão de rspreviewpolicy.config é %ProgramFiles%\Microsoft Visual Studio 9.0\Common7\IDE\PrivateAssemblies.

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

Atualizando assemblies personalizados

Em algum momento, talvez seja necessário atualizar uma versão de um assembly personalizado que está sendo referenciado por vários relatórios publicados no momento. Se esse assembly já existir no diretório bin do servidor de relatório ou do Designer de Relatórios e o número de versão do assembly for incrementado ou alterado de alguma forma, os relatórios publicados no momento não funcionarão corretamente. Você precisará atualizar a versão do assembly referenciada no CodeModules elemento da definição do relatório e republicar os relatórios. Se você souber que atualizará frequentemente um assembly personalizado e os relatórios publicados no momento precisarão fazer referência ao novo assembly, convém considerar o uso do mesmo número de versão em todas as atualizações de um assembly específico.

Se você não precisar de seus relatórios publicados no momento para fazer referência à nova versão do assembly, poderá implantar seu assembly personalizado no cache de assembly global. O cache de assembly global pode manter várias versões do mesmo assembly, de modo que seus relatórios atuais possam fazer referência à versão anterior do assembly e seus relatórios recém-publicados possam referenciar o assembly atualizado. Outra abordagem seria definir o redirecionamento de associação do servidor de relatório para forçar um redirecionamento de todas as solicitações do assembly antigo para o novo assembly. Você precisaria modificar o servidor de relatório Web.config arquivo e o servidor de relatório ReportService.exe.config arquivo. A entrada pode ter a seguinte aparência:

<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>  

Consulte Também

Usar assemblies personalizados com relatórios
Trabalhando com assemblies e o cache de assembly global