Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Mit Ausnahme einiger unten beschriebener Vorgänge sind alle Datenvorgänge, die die SDK-Assemblyanforderungsklassen verwenden, synchron.
Beim Importieren einer Lösung handelt es sich um einen Vorgang, der erhebliche Ressourcen erfordern kann. Daher gibt es eine Option, diesen Vorgang asynchron mithilfe der ExecuteAsyncRequest Anforderungsklasse auszuführen. Die Anforderungsklasse DeleteAndPromoteRequest führt ähnliche ressourcenintensive Vorgänge aus.
Durch das asynchrone Importieren einer Lösung wird die Systemleistung verbessert, indem die Nachrichtenausführung bis zu einem späteren Zeitpunkt verschoben wird, wenn die Serverlast möglicherweise geringer ist. Interaktive Benutzer müssen nicht warten, bis die Zielnachricht ausgeführt wird, bevor sie fortfahren können. Dies ist besonders hilfreich beim Importieren von Lösungen, was mehrere Minuten oder länger dauern kann.
Das Zusammenführen von Zeilen mit einer großen Anzahl verwandter Aktivitäten oder anderer Tabellentypen kann auch lange dauern, bis alle verknüpften Zeilen aktualisiert werden, sodass die Ausführung im Hintergrund die Benutzererfahrung verbessern kann.
Hinweis
ImportSolutionRequest, DeleteAndPromoteRequest und MergeRequest sind die einzigen Anforderungsklassen, die mit ExecuteAsyncRequest verwendet werden können.
Verwenden Sie die Anforderungsklasse ExecuteAsyncRequest , um eine Nachricht asynchron auszuführen. Sie konfigurieren die Anforderung und übergeben die Anforderungsinstanz als Argument an IOrganizationService.Execute. ExecuteAsyncResponse wird mit der ID des asynchronen Auftrags zurückgegeben. Sie können (optional) den Auftrag mithilfe der ID abfragen, um den aktuellen Zustand zu ermitteln.
Sie können die Anforderungsklasse ExecuteMultipleRequest verwenden, um mehrere Lösungen in eine Warteschlange zu stellen und asynchron zu importieren. Fügen Sie dazu eine oder mehrere ExecuteAsync Nachrichtenanforderungen zu einer ExecuteMultiple Nachrichtenanforderung hinzu. Aufgrund von Drosselungsbeschränkungen, die die Gesamtleistung des Systems verbessern, kann jede Organisation jeweils nur eine asynchron ausgeführte Nachricht gleichzeitig ausführen.
Weitere Informationen zur ExecuteMultiple Nachricht finden Sie unter Ausführen mehrerer Anforderungen mit dem SDK für .NET.
Example
Das folgende Beispiel zeigt, wie Sie die ExecuteAsyncRequest Nachrichtenanforderungsklasse mit der ImportSolutionRequest Nachrichtenanforderungsklasse verwenden.
string ManagedSolutionLocation = @"C:\temp\ManagedSolutionForImportExample.zip";
byte[] fileBytes = File.ReadAllBytes(ManagedSolutionLocation);
ImportSolutionRequest impSolReq = new ImportSolutionRequest()
{
CustomizationFile = fileBytes
};
ExecuteAsyncRequest asyncReq = new ExecuteAsyncRequest()
{
Request = impSolReq
};
var asyncResp = (ExecuteAsyncResponse)svc.Execute(asyncReq);
Guid asyncOperationId = asyncResp.AsyncJobId;
Anschließend können Sie die AsyncOperation-Tabelle mithilfe des asyncOperationId Werts für den Systemauftrag mit der entsprechenden AsyncOperationId abrufen, um zu ermitteln, wann der StatusCode-Wert angibt, ob der Vorgang erfolgreich war (30), fehlgeschlagen (31) oder abgebrochen wurde (32).
Siehe auch
Nachrichten mit dem SDK für .NET verwenden
Verwenden von ExecuteTransaction
Mehrere Anforderungen mit dem SDK für .NET ausführen