UploadOperation Klasse

Definition

Führt einen asynchronen Uploadvorgang aus. Eine Übersicht über die Funktionen der Hintergrundübertragung finden Sie unter Übertragen von Daten im Hintergrund. Laden Sie das Beispiel für die Hintergrundübertragung für ein Codebeispiel herunter.

public ref class UploadOperation sealed : IBackgroundTransferOperationPriority
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
class UploadOperation final : IBackgroundTransferOperationPriority
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
public sealed class UploadOperation : IBackgroundTransferOperationPriority
Public NotInheritable Class UploadOperation
Implements IBackgroundTransferOperationPriority
Vererbung
Object Platform::Object IInspectable UploadOperation
Attribute
Implementiert

Windows-Anforderungen

Gerätefamilie
Windows 10 (eingeführt in 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (eingeführt in v1.0)
App-Funktionen
internetClient internetClientServer privateNetworkClientServer

Beispiele

Im folgenden Beispiel wird veranschaulicht, wie Sie einen einfachen Uploadvorgang konfigurieren und beginnen.

using Windows.Foundation; 
using Windows.Networking.BackgroundTransfer;
using Windows.Storage.Pickers;
using Windows.Storage;

private async void StartUpload_Click(object sender, RoutedEventArgs e)
{
    try
    {
        Uri uri = new Uri(serverAddressField.Text.Trim());
        FileOpenPicker picker = new FileOpenPicker();
        picker.FileTypeFilter.Add("*");
        StorageFile file = await picker.PickSingleFileAsync();

        BackgroundUploader uploader = new BackgroundUploader();
        uploader.SetRequestHeader("Filename", file.Name);

        UploadOperation upload = uploader.CreateUpload(uri, file);

        // Attach progress and completion handlers.
        HandleUploadAsync(upload, true);
    }
    catch (Exception ex)
    {
        LogException("Upload Error", ex);
    }
}

Hinweise

Nach dem Beenden der App sollte eine App alle vorhandenen UploadOperation-Instanzen beim nächsten Start mithilfe von GetCurrentUploadsAsync auflisten. Wenn eine UWP-App, die die Hintergrundübertragung verwendet, beendet wird, bleiben unvollständige Uploads im Hintergrund erhalten. Wenn die App nach beendigung neu gestartet wird und diese unvollständigen Vorgänge nicht aufgezählt und in die aktuelle Sitzung erneut eingeführt werden, werden sie veraltet und belegen weiterhin Geräteressourcen. Überlegungen zu Timeouts

  • 1.) Beim Herstellen einer neuen Verbindung für einen Upload über TCP/SSL wird der Verbindungsversuch abgebrochen, wenn er nicht innerhalb von fünf Minuten hergestellt wird.
  • 2.) Nachdem die Verbindung hergestellt wurde, wird eine HTTP-Anforderungsnachricht abgebrochen, die innerhalb von zwei Minuten keine Antwort erhalten hat. Unter der Annahme, dass eine Internetverbindung vorhanden ist, versucht die Hintergrundübertragung bis zu dreimal, einen Upload zu wiederholen. Falls keine Internetkonnektivität erkannt wird, werden erst dann weitere Versuche unternommen, wenn dies der Fall ist.

Anleitung zum Debuggen

Das Beenden einer Debugsitzung in Microsoft Visual Studio ist vergleichbar mit dem Schließen Ihrer App. PUT-Uploads werden angehalten, und POST-Uploads werden abgebrochen. Auch während des Debuggens sollte Ihre App alle dauerhaften Uploads anhalten, neu starten oder abbrechen.

Wenn Jedoch Microsoft Visual Studio-Projektupdates wie Änderungen am App-Manifest erfordern, dass die App deinstalliert und zum Debuggen erneut bereitgestellt wird, kann GetCurrentUploadsAsync keine dauerhaften Vorgänge aufzählen, die mit der vorherigen App-Bereitstellung erstellt wurden.

Versionsverlauf

Windows-Version SDK-Version Mehrwert
1803 17134 MakeCurrentInTransferGroup
2004 19041 RemoveRequestHeader
2004 19041 SetRequestHeader

Eigenschaften

CostPolicy

Ruft die Kostenrichtlinie für den Upload ab und legt sie fest.

Group

Hinweis

Die Gruppe kann nach Windows 8.1 geändert oder nicht mehr für Releases verfügbar sein. Verwenden Sie stattdessen TransferGroup.

Ruft einen Zeichenfolgenwert ab, der die Gruppe angibt, zu der der Upload gehört.

Guid

Dies ist ein eindeutiger Bezeichner für einen bestimmten Uploadvorgang. Eine GUID , die einem Uploadvorgang zugeordnet ist, ändert sich für die Dauer des Uploads nicht.

Method

Ruft die Methode ab, die für den Upload verwendet werden soll.

Priority

Ruft die Übertragungspriorität dieses Uploadvorgangs in einer BackgroundTransferGroup ab oder legt diese fest. Mögliche Werte werden durch BackgroundTransferPriority definiert.

Progress

Ruft den aktuellen Status des Uploadvorgangs ab.

RequestedUri

Ruft den URI ab, aus dem hochgeladen werden soll.

SourceFile

Gibt die hochzuladende IStorageFile an.

TransferGroup

Ruft die Gruppe ab, zu der dieser Uploadvorgang gehört.

Methoden

AttachAsync()

Gibt einen asynchronen Vorgang zurück, der verwendet werden kann, um den Fortschritt und den Abschluss des angefügten Uploads zu überwachen. Durch Aufrufen dieser Methode kann eine App Uploadvorgänge anfügen, die in einer vorherigen App instance gestartet wurden.

GetResponseInformation()

Ruft die Antwortinformationen ab.

GetResultStreamAt(UInt64)

Ruft die teilweise hochgeladene Antwort am angegebenen Speicherort ab.

MakeCurrentInTransferGroup()

Priorisiert den Uploadübertragungsvorgang (und alle anschließenden Übertragungen in derselben Übertragungsgruppe). Das Aufrufen dieser Methode für eine Übertragung, die nicht zu einer Übertragungsgruppe gehört, hat keine Auswirkungen.

RemoveRequestHeader(String)

Wird verwendet, um einen HTTP-Anforderungsheader zu entfernen.

SetRequestHeader(String, String)

Wird verwendet, um einen HTTP-Anforderungsheader festzulegen.

StartAsync()

Startet einen asynchronen Uploadvorgang.

Gilt für:

Weitere Informationen