Compartir por


Implementación de un ensamblado personalizado

Para implementar un ensamblado personalizado en SQL Server Reporting Services, coloque el ensamblado en las carpetas de aplicaciones del Diseñador de informes y el servidor de informes. De forma predeterminada, a los ensamblados personalizados se les concede el permiso Ejecución en Reporting Services. Para conceder privilegios de ensamblados personalizados más allá del permiso Execute, debe editar el archivo de configuración rssrvpolicy.config para el servidor de informes y el archivo de configuración rspreviewpolicy.config para la ventana de vista previa de Diseñador de informes. Otra opción es instalar el ensamblado personalizado en la memoria caché de ensamblados global (GAC).

Nota:

Hay dos modos de vista previa para el Diseñador de informes: la pestaña de vista previa y la ventana de vista previa emergente que se inician cuando se inicia su proyecto de informe en modo DebugLocal. La pestaña Vista previa ejecuta todas las expresiones de informe usando el conjunto de permisos FullTrust y no aplica la configuración de la directiva de seguridad. La ventana de vista previa emergente está pensada para simular la funcionalidad del servidor de informes y, por consiguiente, tiene un archivo de configuración de directiva que usted o un administrador deben modificar para utilizar ensamblados en el Diseñador de informes. Esta vista previa emergente también bloquea el ensamblado personalizado. Por consiguiente, es necesario cerrar la ventana de vista previa para modificar o actualizar el código de ensamblado personalizado.

Implementación de un ensamblado personalizado en Reporting Services

  1. Copie el ensamblado personalizado desde la ubicación de compilación a la carpeta bin del servidor de informes o a la carpeta del Diseñador de informes.

    Si guarda su ensamblado personalizado en la carpeta bin del servidor de informes, puede publicar los informes que hagan referencia a este. La ubicación predeterminada de la carpeta bin para el servidor de informes es la siguiente:

    Reporting Services 2016

    %ProgramFiles%\Microsoft SQL Server\MSRS13.MSSQLSERVER\Reporting Services\ReportServer\bin
    

    Reporting Services 2017 y versiones posteriores

    %ProgramFiles%\Microsoft SQL Server Reporting Services\SSRS\ReportServer\bin
    

    Si lo guarda en la carpeta del Diseñador de informes, puede ejecutar y depurar los informes que hagan referencia a su ensamblado personalizado en el Diseñador de informes. La ubicación predeterminada del Diseñador de informes es la siguiente:

    Visual Studio 2012

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

    Visual Studio 2013

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

    Visual Studio 2015

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

    Visual Studio 2017

    C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\CommonExtensions\Microsoft\SSRS
    

    Visual Studio 2019

    C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\CommonExtensions\Microsoft\SSRS
    
  2. Abra el archivo de configuración adecuado. La ubicación predeterminada de archivorssrvpolicy.config para el servidor de informes es la siguiente:

    Reporting Services 2016

    %ProgramFiles%\Microsoft SQL Server\MSRS13.MSSQLSERVER\Reporting Services\ReportServer
    

    Reporting Services 2017 y versiones posteriores

    %ProgramFiles%\Microsoft SQL Server Reporting Services\SSRS\ReportServer
    

    Los archivos que se van a actualizar para el Diseñador de informes son:

    Visual Studio 2012

    C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\PrivateAssemblies\PreviewProcessingService.exe.config
    C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\PrivateAssemblies\RSPreviewPolicy.config
    C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\PrivateAssemblies\RSReportDesigner.config
    C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\PrivateAssemblies\RSReportHost11.exe.config
    

    Visual Studio 2013

    C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\PrivateAssemblies\PreviewProcessingService.exe.config
    C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\PrivateAssemblies\RSPreviewPolicy.config
    C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\PrivateAssemblies\RSReportDesigner.config
    C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\PrivateAssemblies\RSReportHost.exe.config
    

    Visual Studio 2015

    C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\PrivateAssemblies\PreviewProcessingService.exe.config
    C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\PrivateAssemblies\RSPreviewPolicy.config
    C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\PrivateAssemblies\RSReportDesigner.config
    C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\PrivateAssemblies\RSReportHost.exe.config
    

    Visual Studio 2017

    C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\CommonExtensions\Microsoft\SSRS\PreviewProcessingService.exe.config
    C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\CommonExtensions\Microsoft\SSRS\RSPreviewPolicy.config
    C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\CommonExtensions\Microsoft\SSRS\RSReportDesigner.config
    C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\CommonExtensions\Microsoft\SSRS\RSReportHost.exe.config
    

    Visual Studio 2019

    C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\CommonExtensions\Microsoft\SSRS\PreviewProcessingService.exe.config
    C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\CommonExtensions\Microsoft\SSRS\RSPreviewPolicy.config
    C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\CommonExtensions\Microsoft\SSRS\RSReportDesigner.config
    C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\CommonExtensions\Microsoft\SSRS\RSReportHost.exe.config
    
  3. Agregue un grupo de código para el ensamblado personalizado. Para obtener más información, consulte Desarrollo seguro (Reporting Services).

Actualización de ensamblados personalizados

En algún momento, es posible que tenga que actualizar una versión de un ensamblado personalizado al que hacen referencia varios informes publicados. Si ese ensamblado ya existe en el directorio bin del servidor de informes o Diseñador de informes, y el número de versión del ensamblado se incrementa o cambia de alguna manera, los informes publicados actualmente no funcionarán correctamente. Deberá actualizar la versión del ensamblado al que se hace referencia en el elemento CodeModules de la definición de informe y volver a publicar los informes. Si sabe que con frecuencia actualizará un ensamblado personalizado y los informes publicados actualmente deben hacer referencia al nuevo ensamblado, es posible que quiera considerar la posibilidad de usar el mismo número de versión en todas las actualizaciones de un ensamblado determinado.

Si no necesita los informes publicados actualmente para hacer referencia a la nueva versión del ensamblado, puede implementar el ensamblado personalizado en la caché global de ensamblados. La memoria caché de ensamblados global puede mantener varias versiones del mismo ensamblado, de modo que los informes actuales puedan hacer referencia a la versión anterior del ensamblado y los informes publicados recientemente puedan hacer referencia al ensamblado actualizado. Otro enfoque más sería establecer la redirección obligatoria del servidor de informes para forzar una redirección de todas las solicitudes para el ensamblado anterior al nuevo ensamblado. Necesitaría modificar los archivos Web.config y ReportingServicesService.exe.config del servidor de informes. La entrada podría tener un aspecto similar al del ejemplo siguiente:

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