Share via


Identificazione dello stato di esecuzione

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. Le sessioni creano una connessione logica per gestire lo stato tra server e client tramite HTTP. Le informazioni specifiche dell'utente relative a una particolare sessione sono note come stato della sessione.

La gestione della sessione implica la correlazione di una richiesta HTTP con le altre richieste precedenti generate dalla stessa sessione. 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.

Reporting Services non espone un concetto olistico di stato della sessione simile a quello esposto da ASP.NET. Quando, tuttavia, si eseguono i report, il server di report gestisce lo stato tra chiamate ai metodi sotto forma di esecuzione. 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.

Mentre comunicano con un server di report, i client utilizzano l'esecuzione per gestire la visualizzazione dei report e il passaggio degli utenti ad altre pagine di un report, nonché per mostrare o nascondere le sezioni di un report. Per ogni report eseguito dall'applicazione client è disponibile un'unica esecuzione.

In generale, un'esecuzione inizia quando un utente passa a un browser o a un'applicazione client e seleziona un report da visualizzare. L'esecuzione viene eliminata dopo un breve periodo di timeout dopo la ricezione dell'ultima richiesta (l'intervallo di timeout predefinito è di 20 minuti).

Dal punto di vista del servizio Web, la durata ha inizio quando viene chiamato il metodo LoadReport, LoadReportDefinition o Render del servizio Web ReportServer. Per modificare l'esecuzione attiva (ad esempio, impostando i parametri e le origini dati) possono venire utilizzati altri metodi. L'esecuzione viene eliminata dopo un breve periodo di timeout dopo la ricezione dell'ultima richiesta (l'intervallo di timeout predefinito è di 20 minuti).

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.

Nel diagramma seguente vengono illustrati i percorsi di elaborazione e di rendering per i report.

Percorso di elaborazione/rendering del report

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.

Per eseguire il rendering di un report a livello di programmazione, è necessario eseguire le operazioni seguenti:

Durante la sessione di un report, il report sottostante archiviato nel database del server di report può cambiare. La definizione del report e le autorizzazioni utente possono cambiare oppure il report può essere eliminato o spostato. 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).

È anche possibile gestire una sessione del report utilizzando i comandi di accesso con URL. Per ulteriori informazioni, vedere Gestione di sessioni di report tramite un URL.