Asynchrone XML-Webdienstmethoden
Um die Leistung von Webdienstmethoden zu steigern, die zeitintensive und somit ihren Thread blockierende Methoden aufrufen, sollten Sie diese als asynchrone Webdienstmethoden verfügbar machen. Durch die Implementierung einer asynchronen Webdienstmethode kann der Thread anderen Code ausführen, wenn er an den Threadpool zurückgegeben wird. Auf diese Weise kann ein weiterer Thread aus der begrenzten Anzahl im Threadpool ausgeführt und so die allgemeine Leistung und Skalierbarkeit des Systems verbessert werden.
Eine Erläuterung der Arbeitsschritte für das Konvertieren einer Webdienstmethode in ein Methodenpaar für asynchronen Zugriff finden Sie unter Gewusst wie: Erstellen asynchroner Webdienstmethoden. Ein zusätzliches Codebeispiel finden Sie unter Gewusst wie: Verketten von asynchronen Aufrufen mit einer Webdienstmethode.
Grundsätzlich eignen sich solche Webdienstmethoden besonders gut für die asynchrone Implementierung, die Methoden aufrufen, die E/A-Vorgänge ausführen. Beispiele für solche Methoden sind Methoden, die mit anderen Webdiensten kommunizieren, auf Remotedatenbanken zugreifen, Netzwerk-E/A ausführen und Lese- und Schreibvorgänge für große Dateien ausführen. Zur Ausführung dieser Methoden sind langwierige Zugriffe auf die Hardware erforderlich, sodass der Thread blockiert wird, der die Webdienstmethode ausführt. Dieser Thread kann zum Ausführen von anderem Code freigegeben werden, wenn die Webdienstmethode asynchron implementiert wird.
Unabhängig davon, ob eine Webdienstmethode asynchron implementiert ist, können Clients asynchron mit ihr kommunizieren. Asynchrone Kommunikation wird auch dann für .NET-Clients in der vom WSDL-Tool (Web Services Description Language) (WSDL.EXE) erstellten Proxyklasse verfügbar gemacht, wenn eine Webdienstmethode synchron implementiert wird. Die Proxyklasse enthält die Begin-Methode und die End-Methode für die asynchrone Kommunikation mit den einzelnen Webdienstmethoden. Die Entscheidung über die asynchrone oder synchrone Implementierung einer Webdienstmethode sollte daher auf der Leistung basieren.
Hinweis: |
---|
Die Implementierung einer asynchronen Webdienstmethode wirkt sich nicht auf die HTTP-Verbindung zwischen dem Client und dem Server aus, der für den Webdienst als Host fungiert. Die HTTP-Verbindung wird weder getrennt noch in einen Pool aufgenommen. |
Siehe auch
Aufgaben
Gewusst wie: Erstellen asynchroner Webdienstmethoden
Gewusst wie: Verketten von asynchronen Aufrufen mit einer Webdienstmethode
Konzepte
Asynchrones Kommunizieren mit XML-Webdiensten
Weitere Ressourcen
XML-Webdienste, die ASP.NET verwenden
Copyright © 2007 by Microsoft Corporation. Alle Rechte vorbehalten.