Freigeben über


Bilddateiverwaltung

Wenn die RenderType-Eigenschaft auf ImageTag festgelegt ist, speichert das Diagrammsteuerelement die gerenderten Diagrammbilder als Dateien im Arbeitsspeicher oder auf einem Datenträger. Weitere Informationen finden Sie unter Diagrammbildrendering.Sie können angeben, wie das Diagrammsteuerelement die Bilddateien verwaltet.Verwenden Sie hierzu die ImageStorageMode-Eigenschaft.

In der ImageStorageMode-Eigenschaft wählen Sie entweder den HTTP-Handler des Diagramms zum Verwalten der Bilddateien aus, oder Sie verwalten diese manuell.

Verwenden des HTTP-Handlers des Diagramms

In der Standardeinstellung ist die ImageStorageMode-Eigenschaft auf UseHttpHandler festgelegt.Das Diagrammsteuerelement verwendet in diesem Fall für die Verwaltung der gerenderten Diagrammbilder den ChartHttpHandler, der in der Datei "Web.config" registriert ist.

Verwenden Sie den HTTP-Handler des Diagramms für Folgendes:

  • Vermeiden von Dateiüberschreibungskonflikten in einem Servercluster oder einer Website mit mehreren Prozessen.

  • Schützen der gerenderten Diagrammbilder, indem verhindert wird, dass Benutzer Diagrammbilder herunterladen, die für andere Benutzer gerendert wurden.

  • Reduzieren von Datenträgeroperationen, indem Bilddateien im Arbeitsspeicher oder anderen Speicheroptionen, z. B. Microsoft SQL Server, gespeichert werden.

Dd456629.collapse_all(de-de,VS.140).gifVerwendung

Wenn Sie ein Diagrammsteuerelement aus der Toolbox auf die Entwurfsoberfläche der ASP.NET-Seite ziehen, wird der ChartHttpHandler automatisch in der Datei "Web.config" als "ChartImageHandler" registriert.Sie können das Verhalten von "ChartImageHandler" im <appSettings>-Element konfigurieren.Der relevante Codeabschnitt wird weiter unten zusammen mit den automatisch generierten Einstellungen angegeben:

<appSettings>

<add key="ChartImageHandler" value="storage=file;timeout=20;dir=c:\TempImageFiles\;" />

</appSettings>

Verwenden Sie die Parameter im value-Attribut, um den HTTP-Handler des Diagramms zu konfigurieren.Eine Beschreibung der verschiedenen Parameter finden Sie in der nachfolgenden Tabelle.

Parameter

Beschreibung

storage

Speichermodus.Es sind drei Optionen verfügbar:

  • file: Speichert die gerenderten Diagrammbilder als temporäre Dateien.Sie müssen zusätzlich den Speicherort im url-Parameter oder dir-Parameter angeben.Für einen Servercluster oder eine Website mit mehreren Prozessen müssen Sie den dir-Parameter angeben.

  • memory: Speichert die gerenderten Diagrammbilder im Speicherbereich des laufenden Prozesses.Verwenden Sie diese Option nicht in einem Servercluster oder einer Website mit mehreren Prozessen.

  • session: Speichert die gerenderten Diagrammbilder in einer Sitzungsvariablen.

url

Die relative URL des Bildspeicherorts.Wenn der dir-Parameter angegeben ist, wird dieser anstelle des url-Parameters verwendet.

Der Standardwert ist "~/".

dir

Absoluter Verzeichnispfad des Bildspeicherorts.Dies kann entweder ein lokaler Pfad oder ein Netzwerkpfad sein.Verwenden Sie in einer Serverclusterumgebung einen Netzwerkpfad, um die temporären Dateien in einem freigegebenen Speicherort zu speichern.Jeder temporären Datei wird eine eindeutige Computer-ID zugewiesen, um zu verhindern, dass die Dateien versehentlich überschrieben werden.

timeout

Das Timeout in Sekunden für gerenderte Diagrammbilder.Nachdem dieser Zeitraum für ein Bild abgelaufen ist, kann es durch ein neueres Bild ersetzt werden.

Der Standardwert ist 30.

handler

Eine benutzerdefinierte IChartStorageHandler-Implementierung.Der Wert muss als vollständig qualifizierter Assemblyname formatiert werden.Beispiel: MyNamespace.MyClass.MyHandler.

privateImages

Datenschutz.Wenn dieser Parameter auf "True" festgelegt wird, kann das generierte Bild nur von seinem Besitzer heruntergeladen werden, sofern die folgenden Identifizierungsarten erzwungen wurden:

  • Der Benutzer ist authentifiziert.

  • AnonymousID ist aktiviert.

  • SessionID ist verfügbar.

Der Standardwert ist true.

deleteAfterServicing

Gibt an, ob das Bild nach einem erfolgreichem Download von einem Client aus gelöscht werden soll.

Der Standardwert ist true.

webDevServerUseConfigSettings

Gibt an, ob gerenderte Diagrammbilder im Arbeitsspeicher gespeichert werden sollen, wenn die Anwendung mit voller Vertrauensebene auf dem Visual Studio-Entwicklungsserver ausgeführt wird.

Der Standardwert ist true.Dies kann zur Folge haben, dass die Einstellungen in der Datei "Web.config" keine Auswirkungen haben, wenn Sie die ASP.NET-Anwendung in Visual Studio ausführen.

Dd456629.collapse_all(de-de,VS.140).gifKonfigurationseinstellungen in verschiedenen Vertrauensebenen

Die folgende Liste enthält Vertrauensebenen und kennzeichnet deren Auswirkungen auf die Konfigurationseinstellungen in die Datei "Web.config".

  • Volle Vertrauenswürdigkeit: Alle Konfigurationsvariationen sind gültig.

  • Hohe Vertrauenswürdigkeit: Der ASP.NET Development Server wurde nicht erkannt.Daher hat webDevServerUseConfigSettings keine Auswirkungen.

  • Mittlere Vertrauenswürdigkeit: Entspricht der hohen Vertrauenswürdigkeit.

  • Geringe Vertrauenswürdigkeit: Entspricht der hohen Vertrauenswürdigkeit, es ist jedoch kein Dateizugriff zulässig.Der storage-Parameter muss auf session oder memory festgelegt werden.

  • Minimale Vertrauenswürdigkeit: Entspricht der geringen Vertrauenswürdigkeit, außer dass die Erkennung des HTTP-Handlers des Diagramms fehlschlägt.Dies bedeutet, dass der ChartImageHandler-Schlüssel in der Datei "Web.config" erforderlich ist.

Manuelles Verwalten von Bildern

Um gerenderte Diagrammbilder manuell zu verwalten, legen Sie die ImageStorageMode-Eigenschaft auf UseImageLocation und dann die ImageLocation-Eigenschaft auf einen absoluten oder einen relativen Pfad fest.

Hinweis

In diesem Modus verwaltet jedes Diagrammsteuerelement einen separaten Bildspeicher.

Die ImageLocation-Eigenschaft kann den Pfad sowie bestimmte Schlüsselwörter enthalten.Beispiel: "~/Temp/ChartPic_#SEQ(300,5)".Diese Zeichenfolge besteht aus drei Elementen:

  • Der absolute oder relative Verzeichnispfad.Beispiel: "~/Temp/".

  • Der Dateiname oder der Anfangstext aller Bilddateinamen.Beispiel: "ChartPicture_".

  • Ein-Schlüsselwort.Beispiel: "#SEQ(300, 5)".

Dd456629.collapse_all(de-de,VS.140).gifImageLocation ohne Schlüsselwörter

Wenn Sie einen Bildspeicherort ohne Schlüsselwort angeben, verwendet das Diagrammsteuerelement eine einzelne Datei für das gesamte Bildrendering.Der resultierende Dateipfad entspricht dem Verzeichnis mit dem angegebenen Anfangstext und der Dateierweiterung, die Sie in der ImageType-Eigenschaft festgelegt haben.Beispiel: "~/Temp/ChartPicture_.png".

Beachten Sie, dass die Bilddatei bei häufigen Änderungen der Daten oder der Darstellung des Diagramms überschrieben werden kann, bevor sie an den Client gesendet wird, sodass der Client ein falsches Bild empfängt.Verwenden Sie eines der Schlüsselwörter, um dieses Problem zu vermeiden.

Dd456629.collapse_all(de-de,VS.140).gifImageLocation mit Schlüsselwörtern

Sie können drei verschiedene Schlüsselwörter in die ImageLocation-Eigenschaft einfügen.

Schlüsselwort

Beschreibung

#UID

Generiert einen eindeutigen Bezeichner für jedes gerenderte Diagrammbild.Beispiel: "~/Temp/ChartPicture#UID".

Dieses Schlüsselwort stellt sicher, dass der Server jede Seitenanforderung mit dem richtigen gerenderten Bild beantwortet.Sie müssen veraltete Dateien manuell entfernen.Andernfalls nimmt die Anzahl der Dateien unbegrenzt zu.

#SEQ(maxFiles,minutes)

Generiert eine Dateisequenznummer bis zu der von maxFiles definierten Zahl. Anschließend wird die Sequenz von vorne gestartet und die erste Datei in der Sequenz ersetzt.Beispiel: "Picture_#SEQ(300,5)" generiert folgende Dateinamen (wenn ImageType auf Png festgelegt ist): Picture_000001.jpg, Picture_000002.jpg, ...

Der minutes-Parameter gibt das Timeout für jede Datei in der Sequenz an.Er garantiert jedoch nicht die Gültigkeit eines Dateinamens für den angegebenen Zeitraum.Wenn eine Datei vor Ablauf des Timeouts wiederverwendet wird, wird eine Warnmeldung in das Anwendungsereignisprotokoll eingefügt.Legen Sie für den maxFile-Parameter eine angemessen hohe Zahl fest, um zu verhindern, dass Bilddateien versehentlich überschrieben werden.

#NOGUIDPARAM

Entfernt die GUID-Zeichenfolge aus der URL der Bilddatei.Beispiel: "Picture_#SEQ(300,5)#NOGUIDPARAM".

Standardmäßig fügt das Diagrammsteuerelement der Bild-URL eine GUID-Zeichenfolge hinzu.

Bildtyp und Komprimierung

Verwenden Sie zum Angeben des Bildtyps, wenn die Diagrammbilder in temporären Dateien gespeichert werden, die ImageType-Eigenschaft des Diagrammsteuerelements.Wenn Sie diese Eigenschaft auf Jpeg festlegen, können Sie auch die JPEG-Komprimierung in der Compression-Eigenschaft des Diagrammsteuerelements angeben.

Siehe auch

Konzepte

Diagrammbildrendering

Weitere Ressourcen

Verwenden von Diagrammsteuerelementen