Schließen von Handles erzwingen

Der Force Close Handles Vorgang schließt ein Handle oder Handles, das in einem Verzeichnis oder einer Datei geöffnet wurde. Es unterstützt das Schließen eines einzelnen Handles, das durch die Handle-ID für eine Datei oder ein Verzeichnis angegeben wird. Es unterstützt auch das Schließen aller Handles, die für diese Ressource geöffnet wurden. Optional werden rekursiv schließende Handles für Unterressourcen unterstützt, wenn die Ressource ein Verzeichnis ist.

Sie verwenden diesen Vorgang zusammen mit Listenhandles , um Handles zu erzwingen, die Vorgänge blockieren, z. B. das Umbenennen eines Verzeichnisses. SMB-Clients haben diese Handles möglicherweise kompromittiert oder den Überblick verloren. Der Vorgang hat clientseitige Auswirkungen auf das Handle, das Sie schließen, einschließlich benutzerseitig sichtbarer Fehler aufgrund fehlgeschlagener Lese- oder Schreibversuche von Dateien. Dieser Vorgang ist nicht als Ersatz oder Alternative zum Schließen einer SMB-Sitzung gedacht.

Dieser Vorgang ist ab Version 2018-11-09 verfügbar.

Protokollverfügbarkeit

Aktiviertes Dateifreigabeprotokoll Verfügbar
SMB Ja
NFS Nein

Anforderung

Sie können die Force Close Handles Anforderung wie folgt erstellen. Wir empfehlen HTTPS.

Methode Anforderungs-URI HTTP-Version
PUT https://myaccount.file.core.windows.net/myshare/mydirectorypath/myfileordirectory?comp=forceclosehandles HTTP/1.1

Ersetzen Sie die im Anforderungs-URI angezeigten Pfadkomponenten wie folgt durch Ihre eigenen Angaben:

Pfadkomponente BESCHREIBUNG
myaccount Der Name Ihres Speicherkontos.
myshare Der Name der Dateifreigabe.
mydirectorypath Optional. Der Pfad zum Verzeichnis.
myfileordirectory Der Name der Datei oder des Verzeichnisses.

Ausführliche Informationen zu Einschränkungen bei der Pfadbenennung finden Sie unter Benennen und Verweisen auf Freigaben, Verzeichnisse, Dateien und Metadaten.

URI-Parameter

Sie können die folgenden zusätzlichen Parameter für den URI angeben:

Parameter BESCHREIBUNG
timeout Optional. Ausgedrückt in Sekunden. Weitere Informationen finden Sie unter Festlegen von Timeouts für Dateidienstvorgänge.
marker Optional. Ein Zeichenfolgenwert, der die Position der Handles angibt, die mit dem nächsten Force Close Handles Vorgang geschlossen werden. Der Vorgang gibt einen Markerwert innerhalb des Antworttexts zurück, wenn weitere Handles geschlossen werden müssen. Der Markerwert kann dann in einem nachfolgenden Aufruf verwendet werden, um den nächsten Satz von Handles zu schließen.

Der Markerwert ist für den Client nicht transparent.
sharesnapshot Optional. Ein undurchsichtiger Datums-/Uhrzeitwert. Wenn es vorhanden ist, wird die Freigabe Momentaufnahme angegeben, die die Liste der Handles abfragen soll.

Anforderungsheader

In der folgenden Tabelle werden die erforderlichen und optionalen Anforderungsheader beschrieben:

Anforderungsheader BESCHREIBUNG
Authorization Erforderlich. Gibt das Autorisierungsschema, den Kontonamen und die Signatur an. Weitere Informationen finden Sie unter Autorisieren von Anforderungen an Azure Storage.
Date oder x-ms-date Erforderlich. Gibt die koordinierte Weltzeit (Coordinated Universal Time, UTC) für die Anforderung an. Weitere Informationen finden Sie unter Autorisieren von Anforderungen an Azure Storage.
x-ms-version Erforderlich für alle autorisierten Anforderungen, aber optional für anonyme Anforderungen. Gibt die Version des für die Anforderung zu verwendenden Vorgangs an. Weitere Informationen finden Sie unter Versionsverwaltung für die Azure-Speicherdienste.
x-ms-client-request-id Optional. Stellt einen vom Client generierten, undurchsichtigen Wert mit einem Zeichenlimit von 1 Kibibyte (KiB) bereit, der in den Protokollen aufgezeichnet wird, wenn die Protokollierung konfiguriert ist. Es wird dringend empfohlen, diesen Header zu verwenden, um clientseitige Aktivitäten mit Anforderungen zu korrelieren, die der Server empfängt.
x-ms-handle-id Erforderlich. Gibt die zu schließende Handle-ID an. Verwenden Sie ein Sternchen (*) als Platzhalterzeichenfolge, um alle Handles anzugeben.
x-ms-recursive Optional. Ein boolescher Wert, der angibt, ob der Vorgang auch für die Dateien und Unterverzeichnisse des im URI angegebenen Verzeichnisses gelten soll.
x-ms-file-request-intent Erforderlich, wenn Authorization der Header ein OAuth-Token angibt. Zulässiger Wert ist backup. Dieser Header gibt an, dass oder Microsoft.Storage/storageAccounts/fileServices/readFileBackupSemantics/actionMicrosoft.Storage/storageAccounts/fileServices/writeFileBackupSemantics/action gewährt werden soll, wenn sie in der RBAC-Richtlinie enthalten sind, die der Identität zugewiesen ist, die mithilfe des Authorization Headers autorisiert ist. Verfügbar für Version 2022-11-02 und höher.
x-ms-allow-trailing-dot: { <Boolean> } Optional. Version 2022-11-02 und höher. Der boolesche Wert gibt an, ob ein nachgestellter Punkt in der Anforderungs-URL gekürzt werden soll. Weitere Informationen finden Sie unter Benennen und Verweisen auf Freigaben, Verzeichnisse, Dateien und Metadaten.

Anforderungstext

Keine.

Antwort

Die Antwort enthält den HTTP-Statuscode, einen Satz von Antwortheadern und einen Antworttext im XML-Format.

Statuscode

Bei einem erfolgreichen Vorgang wird der Statuscode 200 (OK) zurückgegeben.

Informationen zu status Codes finden Sie unter Status- und Fehlercodes.

Antwortheader

Die Antwort für diesen Vorgang umfasst die folgenden Header. Die Antwort kann auch zusätzliche HTTP-Standardheader enthalten. Alle Standardheader entsprechen der HTTP/1.1-Protokollspezifikation.

Antwortheader BESCHREIBUNG
x-ms-request-id Identifiziert die durchgeführte Anforderung eindeutig. Sie können ihn verwenden, um probleme mit der Anforderung zu beheben. Weitere Informationen finden Sie unter Problembehandlung für API-Vorgänge.
x-ms-version Gibt die Version von Azure Files an, die zum Ausführen der Anforderung verwendet wird.
Date Ein UTC-Datums-/Uhrzeitwert, der den Zeitpunkt angibt, zu dem der Dienst die Antwort gesendet hat.
x-ms-marker Beschreibt das nächste zu schließende Handle. Diese Zeichenfolge wird zurückgegeben, wenn weitere Handles geschlossen werden müssen, um die Anforderung abzuschließen. Die Zeichenfolge wird in nachfolgenden Anforderungen verwendet, um das Schließen der verbleibenden Handles zu erzwingen. Das Fehlen von x-ms-marker gibt an, dass alle relevanten Handles geschlossen wurden.
x-ms-number-of-handles-closed Gibt die Anzahl geschlossener Handles an.
x-ms-number-of-handles-failed Gibt die Anzahl der Handles an, die nicht geschlossen werden konnten.
x-ms-client-request-id Kann zur Problembehandlung von Anforderungen und entsprechenden Antworten verwendet werden. Der Wert dieses Headers ist gleich dem Wert des x-ms-client-request-id Headers, wenn er in der Anforderung vorhanden ist und der Wert höchstens 1.024 sichtbare ASCII-Zeichen umfasst. Wenn der x-ms-client-request-id Header in der Anforderung nicht vorhanden ist, ist dieser Header in der Antwort nicht vorhanden.

Antworttext

Leer.

Autorisierung

Nur der Kontobesitzer kann diesen Vorgang aufrufen.

Hinweise

Wenn während der Verarbeitung von Anforderungen keine Handles geschlossen werden (z. B. gibt der angegebene x-ms-handle-id Wert ein ungültiges Handle an, oder in der angegebenen Datei oder dem angegebenen Verzeichnis wurden keine geöffneten Handles gefunden), erhalten Sie die Antwort 200 (OK) status mit x-ms-number-of-handles-closed=0.

Der x-ms-recursive Header ist nur für Verzeichnisse gültig. Wenn Sie sie für eine Datei angeben, erhalten Sie die Antwort 400 (Ungültige Anforderung).

Das Erzwingen eines Handles, das mit FILE_FLAG_DELETE_ON_CLOSE geöffnet wurde, bewirkt möglicherweise nicht, dass die Datei gelöscht wird.

List Handles gibt die x-ms-handle-id dienstseitige Handle-ID zurück. Diese Handle-ID unterscheidet sich von dem entsprechenden clientseitigen Handle, das SMB oder eine Anwendung verwaltet.

Weitere Informationen