Web-API WebApiService-Beispiel für parallele Operationen (C#)

Dieses .NET 6.0-Beispiel veranschaulicht, wie parallele Datenvorgänge mit der Dataverse-Web-API ausgeführt werden.

In diesem Beispiel wird der allgemeine Helfercode in der WebAPIService-Klassenbibliothek (C#) verwendet.

Anforderungen

  • Microsoft Visual Studio 2022.
  • Zugriff auf Dataverse mit Rechten, um Datenvorgänge auszuführen.

Wie man dieses Beispiel ausführt

  1. Klonen Sie das PowerApps-Beispiele-Repository oder laden Sie es herunter.

  2. Suchen Sie den Ordner /dataverse/webapi/C#-NETx/ParallelOperations/.

  3. Die Datei ParallelOperations.sln mit Visual Studio 2022 öffnen

  4. Bearbeiten Sie die appsettings.json-Datei, um die folgenden Eigenschaftswerte festzulegen:

    Eigenschaften Anweisungen
    Url Die Url für Ihre Umgebung. Ersetzen Sie den https://yourorg.api.crm.dynamics.com-Wert des Platzhalters durch den Wert für Ihre Umgebung. Gehen Sie zu Entwicklerressourcen anzeigen, um die URL für Ihre Umgebung zu finden.
    UserPrincipalName Ersetzen Sie den you@yourorg.onmicrosoft.com-Wert des Platzhalters durch den UPN-Wert, den Sie für den Zugriff auf die Umgebung verwenden.
    Password Ersetzen Sie den yourPassword-Wert des Platzhalters durch das von Ihnen verwendete Kennwort.
  5. Die Datei appsettings.json speichern

  6. Drücken Sie F5, um das Beispiel auszuführen.

Code

Der Code für dieses Beispiel ist hier: PowerApps-Beispiele/dataverse/webapi/C#-NETx/ParallelOperations/Program.cs

Veranschaulichung

Dieses Beispiel enthält Einstellungen, die Sie anwenden können, um Ihre Verbindung zu optimieren.

Dieses Beispiel sendet zunächst eine einfache Anforderung, um auf den Wert des x-ms-dop-hint Antwortheaders zuzugreifen, um die empfohlenen Parallelitätsgrade für diese Umgebung zu bestimmen. Wenn der maximale Parallelitätsgrad gleich dem Wert des x-ms-dop-hint-Antwortheaders festgelegt wird, sollten Sie einen stabilen Zustand erreichen, in dem der Durchsatz mit einem Minimum der zurückgegebenen 429 TooManyRequests-Dienstschutzgrenzwertfehler optimiert ist.

Um bei diesem Beispiel auf Dienstschutzgrenzwerte zu stoßen, sollten Sie die numberOfRecords-Variable auf über 10.000 oder was auch immer erforderlich ist, erhöhen, damit das Beispiel länger als 5 Minuten läuft. Sie sollten auch den Code ändern, um maxDegreeOfParallelism auf deutlich über dem Wert des x-ms-dop-hint Antwortheaders einzustellen. Anschließend sollten Sie mit Fiddler beobachten können, wie WebAPIService die Anforderungen wiederholt, die diesen Fehler zurückgeben.

Dieses Beispiel verwendet die Parallel.ForEachAsync-Methode, die mit .NET 6.0 eingeführt wurde.

Dieses Beispiel verarbeitet eine Liste von Anforderungen zum Erstellen von Kontodatensätzen, sendet die Anforderungen parallel und verwendet dann die zurückgegebenen Daten, um Anforderungen zum Löschen der erstellten Konten in ein ConcurrentBag-Element zu löschen. Nachdem die Datensätze erstellt wurden, wird die Anzahl der Sekunden zum Erstellen der Datensätze angezeigt.

Dann werden die Löschanforderungen in ConcurrentBag verarbeitet und die zum Löschen der Datensätze aufgewendete Zeit wird angezeigt.

Vielleicht möchten Sie dieses Beispiel mit Beispiel für parallele Web-API-Vorgänge mit TPL-Dataflowkomponenten (C#) vergleichen.

Bereinigung

Standardmäßig löscht dieses Beispiel alle darin erstellten Datensätze. Wenn Sie die erstellten Datensätze nach Abschluss des Beispiels anzeigen möchten, ändern Sie die deleteCreatedRecords-Variable auf false und Sie werden aufgefordert, zu entscheiden, ob Sie die Datensätze löschen möchten.

Siehe auch

Dataverse-Web-API verwenden
WebAPIService-Klassenbibliothek (C#)
Erstellen einer Tabellenzeile über die Web-API
Aktualisieren und Löschen von Tabellenzeilen über die Web-API
API-Grenzwerte für den Serviceschutz
Web API Beispiele
Beispiel grundlegender Web-API-Operationen (C#)
Web API-Abfragedatenbeispiel (C#)
Beispiel bedingter Web-API-Operationen (C#)
Web-API-Funktionen- und Aktionen-Beispiel (C#)
Beispiel für Web-API-Tabellenschemavorgänge (C#)
Beispiel für parallele Web-API-Vorgänge mit TPL Dataflow-Komponenten (C#)

Hinweis

Können Sie uns Ihre Präferenzen für die Dokumentationssprache mitteilen? Nehmen Sie an einer kurzen Umfrage teil. (Beachten Sie, dass diese Umfrage auf Englisch ist.)

Die Umfrage dauert etwa sieben Minuten. Es werden keine personenbezogenen Daten erhoben. (Datenschutzbestimmungen).