Distribuzione di un assembly personalizzatoDeploying a Custom Assembly

Per distribuire un assembly personalizzato in SQL ServerSQL Server Reporting ServicesReporting Services, inserire l'assembly nelle cartelle dell'applicazione sia di Progettazione report che del server di report.To deploy a custom assembly in SQL ServerSQL Server Reporting ServicesReporting Services, place the assembly in the application folders of both Report Designer and the report server. Per impostazione predefinita, agli assembly personalizzati viene concessa l'autorizzazione Execution in Reporting ServicesReporting Services.By default, custom assemblies are granted Execution permission in Reporting ServicesReporting Services. Per concedere agli assembly personalizzati altri privilegi oltre all'autorizzazione Execution, è necessario modificare il file di configurazione rssrvpolicy.config per il server di report e il file di configurazione rspreviewpolicy.config per la finestra di anteprima di Progettazione report.To grant custom assemblies privileges beyond Execute permission, you will need to edit the rssrvpolicy.config configuration file for the report server and the rspreviewpolicy.config configuration file for the Report Designer preview window. In alternativa, è possibile installare l'assembly personalizzato nella Global Assembly Cache (GAC).Alternatively, you can install your custom assembly in the global assembly cache (GAC).

Nota

In Progettazione report sono disponibili due modalità di anteprima, vale a dire la scheda Anteprima e la finestra popup di anteprima visualizzata quando il progetto report viene avviato in modalità DebugLocal.There are two preview modes for Report Designer: the Preview tab and the pop-up preview window that is launched when your report project is started in DebugLocal mode. Nella scheda Anteprima vengono eseguite tutte le espressioni del report usando il set di autorizzazioni FullTrust e non vengono applicate le impostazioni dei criteri di sicurezza.The Preview tab executes all report expressions using the FullTrust permission set and does not apply security policy settings. La finestra di anteprima popup consente di simulare le funzionalità del server di report e pertanto dispone di un file di configurazione dei criteri che l'utente o un amministratore deve modificare per utilizzare gli assembly personalizzati in Progettazione report.The pop-up preview window is meant to simulate the report server functionality and therefore has a policy configuration file that you or an administrator must modify to use custom assemblies in Report Designer. In questa anteprima popup l'assembly personalizzato viene inoltre bloccato.This pop-up preview also locks the custom assembly. Per modificare o aggiornare il codice dell'assembly personalizzato è pertanto necessario chiudere la finestra di anteprima.Therefore, you need to close the preview window in order to modify or update your custom assembly code.

Per distribuire un assembly personalizzato in Reporting ServicesTo deploy a custom assembly in Reporting Services
  1. Copiare l'assembly personalizzato dal percorso di compilazione alla cartella bin del server di report o alla cartella di Progettazione report.Copy your custom assembly from your build location to the report server bin folder or the Report Designer folder. Il percorso predefinito della cartella bin del server di report è %Programmi%\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\ReportServer\bin.The default location of the bin folder for the report server is %ProgramFiles%\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\ReportServer\bin. Il percorso predefinito di Progettazione report è %Programmi%\Microsoft Visual Studio 9.0\Common7\IDE\PrivateAssemblies.The default location of the Report Designer is %ProgramFiles%\Microsoft Visual Studio 9.0\Common7\IDE\PrivateAssemblies.

    L'inserimento dell'assembly personalizzato nella cartella bin del server di report consente di pubblicare report che fanno riferimento all'assembly personalizzato, mentre l'inserimento di quest'ultimo nella cartella Progettazione report consente di eseguire i report che fanno riferimento all'assembly personalizzato in Progettazione report ed eseguirne il debug.Placing your custom assembly in the report server bin folder enables you to publish reports that reference your custom assembly, and placing it in the Report Designer folder enables you to run and debug reports that reference your custom assembly in Report Designer.

    Se è necessario concedere al codice dell'assembly personalizzato autorizzazioni in aggiunta a quelle di esecuzione predefinite, effettuare le operazioni seguenti:If you need to grant your custom assembly code permissions beyond the default execute permissions:

  2. Aprire il file di configurazione appropriato.Open the appropriate configuration file. Il percorso predefinito del file rssrvpolicy.config è %Programmi%Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\ReportServer.The default location of rssrvpolicy.config is %ProgramFiles%\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\ReportServer. Il percorso predefinito del file rspreviewpolicy.config è %Programmi%\Microsoft Visual Studio 9.0\Common7\IDE\PrivateAssemblies.The default location of rspreviewpolicy.config is %ProgramFiles%\Microsoft Visual Studio 9.0\Common7\IDE\PrivateAssemblies.

  3. Aggiungere un gruppo di codice per l'assembly personalizzato.Add a code group for your custom assembly. Per altre informazioni vedere Sviluppo sicuro (Reporting Services).For more information, see Secure Development (Reporting Services).

Aggiornamento di assembly personalizzatiUpdating Custom Assemblies

A un certo punto, potrebbe essere necessario aggiornare una versione di un assembly personalizzato al quale fanno attualmente riferimento diversi report pubblicati.At some point, you may need to update a version of a custom assembly that is currently being referenced by several published reports. Se tale assembly è già presente nella directory bin del server di report o in Progettazione report e il numero di versione dell'assembly viene incrementato o modificato in altro modo, i report attualmente pubblicati non funzioneranno più correttamente.If that assembly already exists in the bin directory of the report server or Report Designer and the version number of the assembly is incremented or changed in some way, the currently published reports will no longer work properly. È necessario aggiornare la versione dell'assembly a cui viene fatto riferimento nell'elemento CodeModules della definizione del report e ripubblicare i report.You will need to update the version of the assembly that is referenced in the CodeModules element of the report definition and republish the reports. Se si sa che un assembly personalizzato verrà aggiornato di frequente e i report attualmente pubblicati devono fare riferimento al nuovo assembly, è possibile prendere in considerazione l'utilizzo dello stesso numero di versione per tutti gli aggiornamenti di un assembly specifico.If you know that you will frequently update a custom assembly and your currently published reports need to reference the new assembly, you may want to consider using the same version number across all updates of a particular assembly.

Se non è necessario che i report attualmente pubblicati facciano riferimento alla nuova versione dell'assembly, è possibile distribuire l'assembly personalizzato nella Global Assembly Cache.If you do not need your currently published reports to reference the new version of the assembly, you can deploy your custom assembly to the global assembly cache. La Global Assembly Cache è in grado di gestire più versioni dello stesso assembly, in modo che i report correnti possano fare riferimento alla versione precedente dell'assembly e i nuovi report pubblicati possano fare riferimento all'assembly aggiornato.The global assembly cache can maintain multiple versions of the same assembly, so that your current reports can reference the previous version of your assembly and your newly published reports can reference the updated assembly. Un'altra possibilità consiste nell'impostare il reindirizzamento dell'associazione del server di report in modo da forzare un reindirizzamento di tutte le richieste per il vecchio assembly al nuovo assembly.Yet another approach would be to set the binding redirect of the report server to force a redirect of all requests for the old assembly to the new assembly. In questo caso, sarebbe necessario modificare il file Web.config e il file ReportService.exe.config del server di report.You would need to modify the report server Web.config file and the report server ReportService.exe.config file. Il codice può essere simile al seguente:The entry might look like the following:

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

Vedere ancheSee Also

Utilizzo di assembly personalizzati con i report Using Custom Assemblies with Reports
Uso di assembly e della Global Assembly CacheWorking with Assemblies and the Global Assembly Cache