IHttpCachePolicy::AppendVaryByHeader-Methode
Fügt den Headerwert an die Cacherichtlinie an.
Syntax
virtual HRESULT AppendVaryByHeader(
PCSTR pszHeader
) = 0;
Parameter
pszHeader
Ein Zeiger auf eine NULL-endende Zeichenfolge, die den anzufügenden benutzerdefinierten Header enthält.
- oder -
NULL.
Rückgabewert
HRESULT
. Mögliches Werte (aber nicht die Einzigen) sind die in der folgenden Tabelle.
Wert | BESCHREIBUNG |
---|---|
S_OK | Gibt an, dass pszHeader NULL ist.- oder - Gibt an, dass pszHeader an die Variablenheaderliste angefügt wird. |
ERROR_NOT_ENOUGH_MEMORY | Gibt an, dass der Heapspeicher erschöpft ist. |
E_FAIL | Gibt an, dass der Vorgang fehlgeschlagen ist. |
Bemerkungen
Von CHttpModule abgeleitete Klassen, die sich für Anforderungs- oder Antwortereignisse registrieren, erhalten einen IHttpContext-Zeiger als Parameter für die entsprechende virtual
Methode. Um einen benutzerdefinierten Header anzufügen, rufen Sie die IHttpContext::GetResponse-Methode , die IHttpResponse::GetCachePolicy-Methode und schließlich die -Methode auf AppendVaryByHeader
.
AppendVaryByHeader
Das Verhalten hängt von der Implementierung ab. Sie sollten die folgenden Informationen als Richtlinie verwenden, aber sie sind möglicherweise nicht in allen Szenarien korrekt:
Der aktuelle Standardimplementierer der IHttpCachePolicy-Schnittstelle deklariert einen private
Puffer, der Variablenheaderdaten enthält. Während der Erstellung eines Implementierers wird dieser Puffer als leer initialisiert. Jedes Mal AppendVaryByHeader
, wenn aufgerufen wird, AppendVaryByHeader
gibt sofort S_OK zurück, wenn der pszHeader
Parameter NULL ist. Andernfalls wird der Puffer erweitert, um eine Kopie von pszHeader
zu enthalten, einschließlich des NULL-Terminierungszeichens, plus 1, wenn der Puffer derzeit nicht leer ist. Wenn der Puffer dann nicht leer ist, wird das Zeichen "," an den Puffer angefügt. Schließlich wird der Inhalt von pszHeader
, einschließlich des NULL-Terminierungszeichens, an den Puffer angefügt.
Hinweise für Implementierer
IHttpCachePolicy-Implementierungen sind für das Kopieren des pszHeader
Parameters in einen Puffer verantwortlich, da die daten pszHeader
, die zugeordnet sind, nach dem Aufruf AppendVaryByHeader
von nicht garantiert sind.
Hinweise für Aufrufer
IHttpCachePolicy
Clients sind dafür verantwortlich, entweder einen NULL-Parameter pszHeader
oder eine null-endende Zeichenfolge an die AppendVaryByHeader
-Methode zu übergeben. Clients sind auch für das Löschen von nach dem Aufruf AppendVaryByHeader
von pszHeader
verantwortlich, da IHttpCachePolicy
Implementierer in einen internen Puffer kopierenpszHeader
.
Der interne Puffer, der vom Standardimplementierer IHttpCachePolicy
verwendet wird, ist eine durch Trennzeichen getrennte Zeichenfolge von benutzerdefinierten Headern. pszHeader
Daher darf das Zeichen "," nicht enthalten.
Anforderungen
type | BESCHREIBUNG |
---|---|
Client | – IIS 7.0 unter Windows Vista – IIS 7.5 unter Windows 7 – IIS 8.0 unter Windows 8 – IIS 10.0 unter Windows 10 |
Server | – IIS 7.0 unter Windows Server 2008 – IIS 7.5 unter Windows Server 2008 R2 – IIS 8.0 unter Windows Server 2012 – IIS 8.5 unter Windows Server 2012 R2 – IIS 10.0 unter Windows Server 2016 |
Produkt | – IIS 7.0, IIS 7.5, IIS 8.0, IIS 8.5, IIS 10.0 - IIS Express 7.5, IIS Express 8.0, IIS Express 10.0 |
Header | Httpserv.h |