Identificazione dello stato di esecuzioneIdentifying Execution State

HTTP (Hypertext Transfer Protocol) è un protocollo senza connessione e senza stato, ovvero non indica automaticamente se diverse richieste provengono dallo stesso client o se una singola istanza di un browser continua a visualizzare attivamente una pagina o un sito.Hypertext Transfer Protocol (HTTP) is a connectionless and stateless protocol, which means that it does not automatically indicate whether different requests come from the same client or even whether a single browser instance is still actively viewing a page or site. Le sessioni creano una connessione logica per gestire lo stato tra server e client tramite HTTP.Sessions create a logical connection to maintain state between server and client over HTTP. Le informazioni specifiche dell'utente relative a una particolare sessione sono note come stato della sessione.The user-specific information relevant to a particular session is known as the session state.

La gestione della sessione implica la correlazione di una richiesta HTTP con le altre richieste precedenti generate dalla stessa sessione.Session management involves correlating an HTTP request with other previous requests generated from the same session. In assenza di gestione della sessione, queste richieste appaiono non correlate al servizio Web ReportServer a causa della natura senza connessione e senza stato del protocollo HTTP.Without session management, these requests appear unrelated to the Report Server Web service because of the connectionless and stateless nature of the HTTP protocol.

Reporting ServicesReporting Services non espone un concetto olistico di stato della sessione simile a quello esposto da ASP.NETASP.NET. does not expose a holistic concept of session state such as that exposed by ASP.NETASP.NET. Tuttavia, durante l'esecuzione di report, il server di report gestisce lo stato tra il metodo chiama sotto forma di un esecuzione.However, when executing reports, the report server maintains state between method calls in the form of an execution. Un'esecuzione consente all'utente di interagire con il report in diversi modi, ad esempio caricando il report dal server di report, impostando le credenziali e i parametri per il report ed eseguendo il rendering del report.An execution allows the user to interact with the report in several ways - including loading the report from the report server, setting credentials and parameters for the report, and rendering the report.

Mentre comunicano con un server di report, i client utilizzano l'esecuzione per gestire la visualizzazione dei report e la navigazione degli utenti ad altre pagine di un report, nonché per mostrare o nascondere le sezioni di un report.While they are communicating to a report server, clients use the execution to manage report viewing and user navigation to other pages in a report, and to show or hide sections of a report. Per ogni report eseguito dall'applicazione client è disponibile un'unica esecuzione.A unique execution exists for each report the client application is running.

In generale, un'esecuzione inizia quando un utente passa a un browser o a un'applicazione client e seleziona un report da visualizzare.In general, the lifetime of an execution starts when a user navigates to a browser or client application and selects a report to view. L'esecuzione viene eliminata dopo un breve periodo di timeout dopo la ricezione dell'ultima richiesta (l'intervallo di timeout predefinito è di 20 minuti).The execution is discarded after a short time out period after the last request to the execution has been received (the default time out is 20 minutes).

Dal punto di vista del servizio Web, la durata ha inizio quando viene chiamato il metodo LoadReport, LoadReportDefinition o Render del servizio Web ReportServer.From a Web service perspective, the lifetime starts when the Report Server Web service LoadReport, LoadReportDefinition, or Render methods are called. Per modificare l'esecuzione attiva (ad esempio, impostando i parametri e le origini dati) possono venire utilizzati altri metodi.The application can use other methods to manipulate the active execution (for example, setting parameters and setting data sources). L'esecuzione viene eliminata dopo un breve periodo di timeout dopo la ricezione dell'ultima richiesta (l'intervallo di timeout predefinito è di 20 minuti).The execution is discarded after a short time out period after the last request to the execution has been received (the default time out is 20 minutes).

Un'applicazione tiene traccia di più esecuzioni attive tra le chiamate ai metodi Render e RenderStream del servizio Web, salvando l'oggetto ExecutionID, restituito nell'intestazione SOAP dai metodi LoadReport e LoadReportDefinition.An application keep track of multiple active executions between calls to the Web service Render and RenderStream methods by saving the ExecutionID, which is returned in the SOAP header from the LoadReport and LoadReportDefinition methods.

Nel diagramma seguente vengono illustrati i percorsi di elaborazione e di rendering per i report.The following diagram shows the processing and rendering path for reports.

Percorso di elaborazione/rendering del reportReport processing/rendering path

Per supportare le funzioni descritte in precedenza, il metodo di rendering SOAP corrente è stato suddiviso in più metodi che includono le fasi di inizializzazione dell'esecuzione, elaborazione e rendering.To support the functions described above, the current SOAP Render method has been split into multiple methods encompassing execution initialization, processing, and rendering phases.

Per eseguire il rendering di un report a livello di programmazione, è necessario eseguire le operazioni seguenti:To programmatically render a report, you must:

  • Caricare il report o la definizione del report utilizzando LoadReport o LoadReportDefinition.Load the report or the report definition using LoadReport or LoadReportDefinition.

  • Controllare se per il report sono necessari credenziali o parametri verificando i valori delle proprietà CredentialsRequired e ParametersRequired dell'oggetto ExecutionInfo restituito da LoadReport o LoadReportDefinitionCheck to see if the report needs credentials or parameters by checking the values of the CredentialsRequired and ParametersRequired properties of the ExecutionInfo object returned by LoadReport or LoadReportDefinition

  • Se necessario, impostare le credenziali e/o i parametri utilizzando i metodi SetExecutionCredentials e SetExecutionParameters.If necessary, set the credentials and/or parameters using the SetExecutionCredentials and SetExecutionParameters methods.

  • Chiamare il metodo Render per eseguire il rendering del report.Call the Render method to render the report.

    Durante la sessione di un report, il report sottostante archiviato nel database del server di report può cambiare.While a report is in session, the underlying report stored in the report server database can change. La definizione del report e le autorizzazioni utente possono cambiare oppure il report può essere eliminato o spostato.For example, the report definition can change, the report can be deleted or moved, and user permissions can change. Se il report è in una sessione attiva, non viene interessato dalle modifiche apportate al report sottostante (ovvero il report archiviato nel database del server di report).If the report is in an active session, it is not affected by changes made to the underlying report (that is, the report stored in the report server database).

    È anche possibile gestire una sessione del report utilizzando i comandi di accesso con URL.You can also manage a report session using URL access commands.

Vedere ancheSee Also

RenderRender
Riferimento tecnico ( SSRS ) Technical Reference (SSRS)
Con Reporting Services le intestazioni SOAPUsing Reporting Services SOAP Headers