Identificare lo stato di esecuzione

Hypertext Transfer Protocol (HTTP) è un protocollo senza connessione e senza stato. Essere senza connessione e senza stato significa che non indica automaticamente se richieste diverse provengono dallo stesso client o anche se una singola istanza del browser sta ancora visualizzando 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 sessione, ad esempio 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 usano l'esecuzione per gestire la visualizzazione dei report e lo spostamento utente in altre pagine di un report e per mostrare o nascondere 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 rimossa dopo un breve periodo di timeout dopo la ricezione dell'ultima richiesta all'esecuzione (il timeout predefinito è 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 rimossa dopo un breve periodo di timeout dopo la ricezione dell'ultima richiesta all'esecuzione (il timeout predefinito è 20 minuti).

Un'applicazione tiene traccia di più esecuzioni attive tra le chiamate al servizio Render Web e RenderStream i metodi salvando .ExecutionID L'ID esecuzione viene restituito nell'intestazione SOAP dai LoadReport metodi e LoadReportDefinition .

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

Diagramma che mostra il percorso di elaborazione e rendering per i report.

Per supportare le funzioni descritte in precedenza, il metodo SOAP Render corrente viene suddiviso in più metodi che includono fasi di inizializzazione, elaborazione e rendering dell'esecuzione.

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 si trova in una sessione attiva, le modifiche apportate al report sottostante( ovvero il report archiviato nel database del server di report) non influiscono su di esso.

È anche possibile gestire una sessione del report utilizzando i comandi di accesso con URL.