Zugriff auf externe Webservices
Plug-Ins und benutzerdefinierte Workflowaktivitäten können über die Protokolle HTTP und HTTPS auf das Netzwerk zugreifen. Diese Funktion bietet Unterstützung für den Zugriff auf gängige Webdienste wie Social Sites, Newsfeeds, Webservices und mehr. Die folgenden Internet-Zugriffsbeschränkungen gelten für diese Sandboxfunktion.
- Ihr Server muss über die aktuellen TLS und verschlüsselten Suiten verfügen.
- Nur die HTTP- und HTTPS-Protokolle sind erlaubt.
- Der Zugriff auf localhost (Loopback) ist nicht erlaubt.
- IP-Adressen können nicht verwendet werden. Sie müssen eine benannte Internetadresse verwenden, die die DNS-Namensauflösung erfordert.
- Anonyme Authentifizierung wird unterstützt und empfohlen. Es gibt keine Vorkehrung für die Aufforderung des angemeldeten Benutzers zur Eingabe oder zum Speichern von Anmeldeinformationen.
- Ihr Server muss Verbindungen von IP-Adresswerten von Power Platform- und Dynamics 365-Diensten, die unter dem AzureCloud-Diensttag angegeben sind, zulassen.
Andere Methoden für den Zugriff auf Webdienste sind die Verwendung von Webhooks und der Azure Service Bus. Weitere Informationen zu diesen Themen finden Sie unter den untenstehenden Links.
So greifen Sie auf externe Webservices zu
Heute sind die meisten Menschen mit der System.Net.Http.HttpClient-Klasse vertraut. HttpClient
wurde mit .NET 4.5 eingeführt und bietet umfassende Funktionen im Vergleich zur System.Net.WebClient-Klasse, die jedoch weiterhin verfügbar ist.
Für neue Plug-Ins sollten Sie HttpClient
verwenden, weil das .NET-Team WebClient nicht für die Neuentwicklung empfiehlt. Dies bedeutet jedoch nicht, dass Sie in älterem Code jedes Vorkommen von WebClient
ersetzen müssen. Die meisten der Vorteile von HttpClient
gelten nicht notwendigerweise innerhalb eines Plug-Ins. HttpClient
dient zur Wiederverwendung und ist standardmäßig asynchron. Sofern Sie nicht mehrere HTTP-Anfragen innerhalb Ihres Plug-Ins stellen, ist WebClient
für eine einzige Anfrage ausgelegt. Da HttpClient
standardmäßig asynchron ist, müssen Sie von typischen Gebrauchsmustern Abstand nehmen und Code hinzufügen, der erzwingt, dass die Vorgänge synchron durchgeführt werden. Dies geschieht in der Regel durch Entfernen des Schlüsselworts await
und Anhängen von .GetAwaiter().GetResult()
an jeden asynchronen Aufruf.
WebClient
bietet einfache synchrone Methoden wie UploadData, DownloadFile, die die zugrundeliegende verwendete HTTP-Methode nicht eindeutig offenlegen, aber sie können mit spezifischen Überschreibungen wie UploadString(String, String, String) festgelegt werden, falls Sie PATCH
anstelle von POST
verwenden möchten.
In den meisten Fällen werden Sie außerhalb von Plug-Ins HttpClient
verwenden. Innerhalb von Plug-Ins können Sie auch WebClient
verwenden, wenn Sie dies vorziehen.
Bewährte Methoden
Gemäß den folgenden Themen zu bewährten Methoden:
- KeepAlive auf falsch setzen, wenn Sie mit externen Hosts in einem Plug-in interagieren
- Timeout festlegen, wenn externe Aufrufe in einem Plug-In getätigt werden
Sie müssen sicherstellen, dass ein angemessener Timeout
-Zeitraum für Ihre externen Aufrufe festgelegt und KeepAlive
deaktiviert wird. Siehe die obigen Links für weitere Informationen.
Siehe auch
Plug-Ins
Workflowerweiterungen
Azure-Integration
Verwenden von Webhooks
Beispiel: Webzugriff über ein Sandkasten-Plug-In
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).