Identifizieren des Ausführungszustands
Hypertext Transfer Protocol (HTTP) ist ein verbindungsloses und zustandsloses Protokoll. Wenn sie ohne Verbindung und zustandslos ist, bedeutet dies, dass nicht automatisch angegeben wird, ob verschiedene Anforderungen vom gleichen Client stammen oder ob eine einzelne Browserinstanz noch aktiv eine Seite oder Website anzeigt. In Sitzungen wird eine logische Verbindung erstellt, um den Status zwischen Server und Client über HTTP beizubehalten. Die benutzerspezifischen Informationen einer bestimmten Sitzung werden als Sitzungsstatus bezeichnet.
Die Sitzungsverwaltung umfasst die Korrelation einer HTTP-Anforderung mit anderen, früheren Anforderungen, die von der gleichen Sitzung generiert wurden. Ohne Sitzungsverwaltung werden diese Anforderungen aufgrund der verbindungs- und statuslosen Natur des HTTP-Protokolls ohne Beziehung zum Berichtsserver-Webdienst angezeigt.
Reporting Services macht kein ganzheitliches Konzept des Sitzungszustands verfügbar, z. B. das von ASP.NET verfügbar gemacht wird. Bei der Ausführung von Berichten behält der Berichtsserver jedoch den Status zwischen den Methodenaufrufen in Form einer Ausführungbei. Mithilfe einer Ausführung kann der Benutzer auf verschiedene Arten mit dem Bericht interagieren. Dazu gehört das Laden des Berichts vom Berichtsserver, die Einstellung der Anmeldeinformationen und Parameter für den Bericht sowie das Rendern des Berichts.
Während sie mit einem Berichtsserver kommunizieren, verwenden Clients die Ausführung zum Verwalten der Berichtsanzeige und Benutzernavigation zu anderen Seiten in einem Bericht und zum Ein- oder Ausblenden von Abschnitten eines Berichts. Eine eindeutige Ausführung ist für jeden Bericht vorhanden, den die Clientanwendung ausführt.
Normalerweise beginnt die Lebensdauer einer Ausführung, wenn ein Benutzer zum Browser oder zur Clientanwendung navigiert und einen Bericht für die Anzeige auswählt. Die Ausführung wird nach einem kurzen Timeoutzeitraum nach Empfang der letzten Anforderung an die Ausführung verworfen (der Standardtimeout beträgt 20 Minuten).
Von der Perspektive eines Webdiensts beginnt die Lebensdauer, wenn die Berichtsserver-Webdienstmethoden LoadReport, LoadReportDefinition oder Render aufgerufen werden. Die Anwendung kann andere Methoden zur Bearbeitung der aktiven Ausführung verwenden (z. B. Einstellen von Parametern und Datenquellen). Die Ausführung wird nach einem kurzen Timeoutzeitraum nach Empfang der letzten Anforderung an die Ausführung verworfen (der Standardtimeout beträgt 20 Minuten).
Eine Anwendung verfolgt mehrere aktive Ausführungen zwischen Aufrufen des Webdiensts Render und RenderStream Methoden, indem die ExecutionIDDatei gespeichert wird. Die Ausführungs-ID wird im SOAP-Header aus den LoadReport Und LoadReportDefinition Methoden zurückgegeben.
Das folgende Diagramm zeigt den Verarbeitungs- und Renderingpfad für Berichte.
Zur Unterstützung der zuvor beschriebenen Funktionen wird die aktuelle SOAP-Rendermethode in mehrere Methoden unterteilt, die die Ausführungsinitialisierung, Verarbeitung und Renderingphasen umfassen.
Um programmgesteuert einen Bericht zu rendern, müssen Sie Folgendes tun:
Laden Sie den Bericht oder die Berichtsdefinition mit LoadReport oder LoadReportDefinition.
Prüfen Sie, ob der Bericht Anmeldeinformationen oder Parameter benötigt, indem Sie die Werte CredentialsRequired und die Eigenschaften ParametersRequired des ExecutionInfo-Objekts prüfen, das von LoadReport oder LoadReportDefinition zurückgegeben wird.
Falls notwendig, legen Sie die Anmeldeinformationen und/oder die Parameter fest, indem Sie die Methoden SetExecutionCredentials und SetExecutionParameters verwenden.
Rufen Sie die Methode Render zum Rendern des Berichts auf.
Während sich ein Bericht in einer Sitzung befindet, kann sich der in der Berichtsserver-Datenbank gespeicherte zugrundeliegende Bericht ändern. Beispiel: Die Berichtsdefinition kann sich ändern, der Bericht kann gelöscht oder verschoben werden, oder die Benutzerberechtigung kann sich ändern. Wenn sich der Bericht in einer aktiven Sitzung befindet, wirken sich Änderungen am zugrunde liegenden Bericht (d. h. der in der Berichtsserverdatenbank gespeicherte Bericht) nicht darauf aus.
Sie können eine Berichtssitzung auch mit URL-Zugriffsbefehlen verwalten.