Übersicht über Endpunkte in Anwendungen
Im Anwendungs-Designer definieren Endpunkte von Anwendungen Dienste, die von dieser bereitgestellt werden, oder sie geben Anforderungen für die Verwendung von Diensten an. Endpunkte bieten außerdem Verbindungspunkte, über die Sie Kommunikationswege zwischen Anwendungen konfigurieren können, indem Sie deren Endpunkte verbinden. Sie können auch einen Anwendungsendpunkt einschränken, indem Sie die Typen von Endpunkten logischer Server einschränken, mit denen Verbindungen hergestellt werden können, wenn Sie die Bereitstellung im Bereitstellungs-Designer definieren. Das Definieren von Einschränkungen kann aber beim Definieren der Bereitstellung Verbindungen der Anwendung mit einem logischen Server verhindern, der andernfalls möglicherweise unterstützt wird.
Weitere Informationen finden Sie unter den folgenden Themen:
Die folgenden Abschnitte enthalten weitere Informationen über Anwendungsendpunkte:
Endpunkte in Anwendungen
Hinzufügen von Endpunkten zu Anwendungen
Ersetzen von Anbieterendpunkten für Webdienste
Endpunkte in Anwendungen
In einer Anwendung kann ein mit einer abstrakten Definition erstellter Endpunkt, z. B. ein Webdienst, ein Anbieter- oder Consumerendpunkt sein. Ein Anbieterendpunkt kennzeichnet einen adressierbaren Speicherort, an dem ein Dienst bereitgestellt wird, und stellt den Dienst auf der Anwendungsform als kleine gefüllte Form dar. Ein Consumerendpunkt gibt die Anforderungen an eine Anwendung an, die einen Dienst verwendet, und stellt die Verwendung dieses Dienstes in der Anwendungsform als kleine leere Form dar. Ein Consumerendpunkt wird mit der Adresse des Anbieterendpunkts konfiguriert, der den verwendeten Dienst bereitstellt, und er wird i. d. R. mit dem Anbieterendpunkt verbunden. Form, Farbe und Symbol des angezeigten Endpunkts ermöglichen das Identifizieren des Endpunkttyps und dessen Unterscheidung. Im Anwendungsdiagramm stellen Verbindungen die Konfiguration von Consumerendpunkten in der Entwicklungsumgebung dar. In Systemdiagrammen stellen Verbindungen die Konfiguration von Consumerendpunkten bei der Bereitstellung dar.
Weitere Informationen finden Sie unter den folgenden Themen:
In der folgenden Tabelle werden vordefinierte Endpunkttypen beschrieben, die in Anwendungen vorkommen können, sowie, ob diese die Implementierung in der Projektmappe unterstützen.
Typ des Anwendungsendpunkts | Beschreibung |
---|---|
Datenbank-Consumerendpunkt |
Stellt einen konfigurierbaren Verbindungspunkt zu einer Datenbank dar. Ein Datenbank-Consumerendpunkt wird in der Anwendung angezeigt, wenn Sie die Anwendung mit einem Anbieterendpunkt einer Datenbank verbinden. Ein Consumerendpunkt einer Datenbank zeigt sich in einer implementierten Anwendung in der Anwendungskonfigurationsdatei als speziell benannte Verbindungszeichenfolge zur Datenbank. Weitere Informationen finden Sie unter Gewusst wie: Konfigurieren von Verbindungen mit externen Datenbanken. |
Datenbank-Anbieterendpunkt |
Stellt einen verfügbar gemachten Verbindungspunkt einer Datenbank dar. Ein einzelner Anbieterendpunkt einer Datenbank wird standardmäßig in eine externe Datenbank eingefügt. |
Generischer Consumerendpunkt |
Stellt einen Verbindungspunkt zu einem Dienst eines unspezifizierten Typs dar. Ein generischer Consumerendpunkt wird in der Anwendung angezeigt, wenn Sie die Anwendung mit einem generischen Anbieterendpunkt verbinden. |
Generischer Anbieterendpunkt |
Stellt einen Verbindungspunkt zu Diensten eines unspezifizierten Typs dar. Er wird als vordefinierter Prototyp in die Toolbox eingefügt. Jedem Anwendungstyp kann ein generischer Anbieterendpunkt hinzugefügt werden. |
Webinhalt-Consumerendpunkt |
Stellt einen Clientverbindungspunkt zu Webinhalt dar, z. B. HTML-Dateien oder Active Server Pages (ASP). Ein Consumerendpunkt für Webinhalt wird in der Anwendung angezeigt, wenn Sie die Anwendung mit einem Anbieterendpunkt für Webinhalt verbinden. |
Webinhalt-Anbieterendpunkt |
Stellt einen Verbindungspunkt dar, an dem Webinhalt verfügbar gemacht wird, z. B. HTML-Dateien oder Active Server Pages (ASP). Er wird als vordefinierter Prototyp in die Toolbox eingefügt. Ein Anbieterendpunkt für Webinhalt wird standardmäßig in ASP.NET-Anwendungen eingefügt, die aus dem ASP.NETWebApplication-Prototyp erstellt wurden. |
Webdienst-Consumerendpunkt |
Stellt einen Verbindungspunkt zu einem Webdienst dar. Ein Consumerendpunkt eines Webdiensts wird in der Anwendung angezeigt, wenn Sie die Anwendung mit einem Anbieterendpunkt des Webdiensts verbinden. |
Webdienst-Anbieterendpunkt |
Stellt einen Verbindungspunkt für einen Webdienst dar. Er wird als vordefinierter Prototyp in die Toolbox eingefügt und kann auch durch Angabe einer WSDL- oder DISCO-Datei erstellt werden. Ein einzelner Anbieterendpunkt für einen Webdienst wird standardmäßig in ASP.NET-Anwendungen eingefügt, die aus dem ASP.NETWebService-Prototyp erstellt wurden. In externen Webdienst- oder BizTalk-Webdienstanwendungen ist immer nur ein einzelner Anbieterendpunkt für einen Webdienst vorhanden. Weitere Informationen finden Sie unter Übersicht über ASP.NET-Anwendungen in Anwendungsdiagrammen. |
Hinzufügen von Endpunkten zu Anwendungen
In Abhängigkeit vom ausgewählten Anwendungsprototyp und der aus dem Prototyp erstellten Anwendung kann eine Anwendung, die Sie im Anwendungsdiagramm hinzufügen, über einen, mehrere oder gar keinen Endpunkt verfügen. Sie können bei Bedarf aber Anbieterendpunkte zu einer Anwendung hinzufügen, indem Sie einen Endpunktprototyp aus der Toolbox auf die Anwendung ziehen oder andere Anbieterendpunkte kopieren und einfügen. Dies ist aber vom Endpunkttyp und davon abhängig, ob die Anwendung diesen unterstützt.
Mit dem ASP.NETWebApplication-Prototyp werden z. B. ASP.NET-Anwendungen mit einem Standardanbieterendpunkt für Webinhalt statt eines Anbieterendpunkts für einen Webdienst erstellt. Wenn Sie den WebServiceEndpoint-Prototyp auf die ASP.NET-Anwendung ziehen, wird in dieser ein Webdienst-Anbieterendpunkt erstellt.
Tipp
Es wird für Webdienst-Endpunkte empfohlen, den Bindungsnamespace von seinem Standardwert ("http://tempuri.org") zu ändern.
Consumerendpunkte können Sie in Anwendungen hinzufügen, indem Sie die Anwendung mit Anbieterendpunkten anderer Anwendungen verbinden oder andere Consumerendpunkte kopieren und einfügen. Microsoft Windows- und Office-Anwendungen beispielsweise verfügen über keine Standardendpunkte. Wenn Sie aber eine Windows- oder Office-Anwendung mit einer Anwendung verbinden, die einen Dienst bereitstellt, wird der entsprechende Consumerendpunkt auf der Anwendung erstellt.
Sie können auch Prototypen konfigurierter Endpunkte erstellen, sodass Sie neue Endpunkte erstellen oder erweitern können. Bei ASP.NET-Anwendungen können Sie Webdienst-Anbieterendpunkte aus WSDL- oder DISCO-Dateien erstellen.
Weitere Informationen finden Sie unter Gewusst wie: Hinzufügen von Endpunkten zu Anwendungen, Gewusst wie: Verbinden von Anwendungen in Anwendungsdiagrammen und Gewusst wie: Erstellen von Anwendungsprototypen aus konfigurierten Anwendungen und Endpunkten.
Aus WSDL- oder DISCO-Dateien erstellte Webdienst-Endpunkte
Im Anwendungs-Designer wird das Verhalten von Webdienstendpunkten mithilfe einer Hybriddarstellung aus WSDL (Web Services Description Language) und Common Language Runtime (CLR) beschrieben. Sie können einen Anbieterendpunkt für einen Webdienst in einer ASP.NET-Anwendung erstellen, indem Sie den Speicherort und den Namen einer WSDL- oder DISCO-Datei angeben.
Hinweis
Das Erstellen eines Webdienst-Anbieterendpunkts aus einer WSDL-Datei entspricht dem Verwenden des Befehlszeilendienstprogramms Wsdl.exe
mit der Option /server
. Weitere Informationen finden Sie unter Erstellen eines XML-Webdienstproxys und Web Services Description Language-Tool (Wsdl.exe).
Da in einer WSDL-Datei die Anforderungen für das Bereitstellen und Verwenden eines Webdiensts angegeben werden, fungiert die WSDL-Datei als Vertrag zwischen zwei Anwendungen und unterstützt den vertragsgesteuerten Ansatz. Durch das Erstellen von Anbieterendpunkten für Webdienste aus derselben WSDL- oder DISCO-Datei werden diese Endpunkte auch austauschbar. Weitere Informationen finden Sie auf der Seite Contract First Web Services Interoperability bei MSDN Online unter https://go.microsoft.com/fwlink/?LinkId=49584 im Abschnitt Ersetzen von Anbieterendpunkten für Webdienste.
Hinweis
Es werden nur WSDL-Dateien, die einzelne WSDL-Bindungen enthalten, sowie DISCO-Dateien, die auf einzelne Webdienste verweisen, unterstützt. Weitere Informationen finden Sie unter Kommunikation zwischen Anwendungen. Eine ASP.NET-Anwendung kann mehrere Anbieterendpunkte für Webdienste enthalten, während externe Webdienste oder BizTalk-Webdienste nur einen Anbieterendpunkt für einen Webdienst enthalten können. Wenn Sie im Anwendungsdiagramm einen externen Webdienst oder einen BizTalk-Webdienst hinzufügen, werden Sie aufgefordert, eine WSDL-Datei mit nur einer WSDL-Bindung für diesen Webdienst anzugeben. Weitere Informationen finden Sie unter Gewusst wie: Suchen von WSDL-Dateien für Webdienste.
Ein aus einer WSDL- oder DISCO-Datei erstellter Webdienst-Anbieterendpunkt wird mit vordefinierten Vorgangssignaturen aufgefüllt. Dazu gehören alle Verweise auf die Common Language Runtime (CLR)-Klassen, die die Serialisierung komplexer XML-Typen behandeln, die in der WSDL-Datei oder zugehörigen XML-Schemadateien angegeben sind. Wenn die Anwendung implementiert ist, werden diese Klassen im Anwendungsprojekt hinzugefügt. Wenn die Anwendung noch nicht implementiert wurde, werden diese Klassen bei der Implementierung generiert.
Hinweis
Wenn Sie einen Webdienst-Anbieterendpunkt, der aus einer WSDL- oder DISCO-Datei erstellt wurde, in eine andere Anwendung kopieren, werden nur die Vorgangssignaturen kopiert. Wenn die Zielanwendung bereits implementiert wurde, werden diese Klassen nicht kopiert. Wenn die Zielanwendung noch nicht implementiert wurde, werden diese Klassen nicht generiert. Aus diesem Grund empfiehlt es sich, diese Endpunkte stattdessen in der Zielanwendung aus derselben WSDL- oder DISCO-Datei zu erstellen.
In einigen XML-Schemas sind zusätzliche serialisierbare Attribute für die Webdienstklassen und die Klassen für die Datenserialisierung erforderlich, damit der XML-Code richtig formatiert wird. Allerdings unterstützen Webdienst-Anbieterendpunkte, die aus WSDL-Dateien erstellt wurden, nur wenige dieser Serialisierungsattribute. In wenigen Fällen sind die für den Webdienst generierte WSDL-Datei und die resultierenden XML-Nachrichten nicht mit der ursprünglichen WSDL-Datei konsistent, aus der der Webdienst-Anbieterendpunkt erstellt wurde.
Tipp
Wenn solche Probleme auftreten, können Sie das Dienstprogramm Wsdl.exe verwenden, um die Webdienstklasse und die Klassen für die Datenserialisierung zu generieren, anstatt mithilfe der Funktionalität des Anwendungs-Designers einen Webdienst-Anbieterendpunkt aus einer WSDL-Datei zu erstellen. Sie müssen anschließend aber manuell den generierten Code im Projekt einfügen und die erforderliche ASMX-Datei erstellen. Im Anwendungsdiagramm wird dann ein Anbieterendpunkt für den Webdienst angezeigt, sodass Sie diesen dann mit dem Designer bearbeiten können.
Die folgende Liste enthält weitere Informationen zur Unterstützung dieser Serialisierungsattribute:
Die folgenden XML-Serialisierungsattribute werden zu Klassen hinzugefügt, die für komplexe XML-Typen generiert wurden:
SerializableAttribute
,SoapTypeAttribute
,XmlIncludeAttribute
,XmlRootAttribute
undXmlTypeAttribute
.Die folgenden XML-Serialisierungsattribute werden zu Klassenfeldern hinzugefügt:
XmlAnyAttribute
,XmlArrayAttribute
,XmlArrayItemAttribute
,XmlAttributeAttribute
,XmlChoiceIdentifierAttribute
,XmlElementAttribute
,XmlEnumAttribute
,XmlIgnoreAttribute
,XmlNamespaceDeclarationsAttribute
undXmlTextAttribute
.Auf den Rückgabetyp für Webmethoden werden keine Serialisierungsattribute angewendet.
Auf die Parameter von Webmethoden werden keine Serialisierungsattribute angewendet.
Die folgenden SOAP-codierten Serialisierungsattribute werden auf diese Klassen nicht angewendet:
SoapElementAttribute
,SoapIgnoreAttribute
,SoapAttributeAttribute
,SoapAttributeOverrides
,SoapAttributes
,SoapEnumAttribute
undSoapIncludeAttribute
.Attributargumente, die einen komplexen XML-Typ erfordern, werden als Zeichenfolgentyp mit dem vollqualifizierten Namen des Typs generiert. Dies verursacht einen Compilerfehler, der korrigiert werden muss.
So wird
<XmlIncludeAttribute(GetType("ClassName"))>
z. B. in Visual Basic als<XmlIncludeAttribute("ClassName")>
generiert, wohingegen[XmlIncludeAttribute(typeof("ClassName"))]
in Visual C# als[XmlIncludeAttribute("ClassName")]
generiert wird.
In der WSDL-Bindungsdefinition in einer WSDL-Datei werden die vom entsprechenden Webdienst verfügbar gemachten Vorgänge beschrieben. Wenn Sie auf diese Weise einen Anbieterendpunkt für einen Webdienst erstellen, wird die WSDL-Bindung als Anbieterendpunkt für einen Webdienst dargestellt, und die Vorgangssignaturen, auf die in der WSDL- oder DISCO-Datei verwiesen wird, werden auf dem Endpunkt hinzugefügt. Nach dem Implementieren einer ASP.NET-Anwendung mit einem solchen Endpunkt werden die entsprechenden Projektdateien für den Webdienst generiert. Weitere Informationen finden Sie unter Übersicht über ASP.NET-Anwendungen in Anwendungsdiagrammen.
Bei einer Consumeranwendung für einen Webdienst, die die Implementierung unterstützt, wird bei der Implementierung mit der WSDL-Datei der entsprechende Webverweis für die Anwendung generiert.
Hinweis
Webverweise für Consumeranwendungen werden nur generiert, wenn das Generieren einer WSDL-Datei in einer ASP.NET-Anwendung aktiviert ist. Wenn dies aktiviert wurde, wird bei der Implementierung automatisch für jeden Webdienst einer Anwendung eine WSDL-Datei generiert. Weitere Informationen finden Sie unter Gewusst wie: Steuern der Generierung von WSDL-Dateien für ASP.NET-Webdienste.
Ersetzen von Anbieterendpunkten für Webdienste
Sie können mit verschiedenen Webdienstimplementierungen experimentieren, z. B. solchen von Drittanbietern, indem Sie Webdienst-Endpunkte austauschen. Voraussetzung ist allerdings, dass diese miteinander kompatibel sind, d. h. beispielsweise dieselbe Vorgangsschnittstelle aufweisen und dieselben Nachrichten behandeln können. Gewöhnlich gibt die Kombination aus WSDL-Bindungsnamen eines Webdiensts und Bindungsnamespace das Verhalten des Webdiensts an. Wenn Sie Webdienstendpunkte im Anwendungs-Designer und im System-Designer verbinden, geben die WSDL-Bindungsname-Eigenschaft und die WSDL-Bindungsnamespace-Eigenschaft auf den Endpunkten an, ob die Endpunkte kompatibel sind.
Hinweis
Es wird eine Warnung angezeigt, wenn Sie Endpunkte verbinden, die nicht über passende WSDL-Bindungsnamen oder -namespaces verfügen. Sie können diese Endpunkte aber trotzdem verbinden. Auch wenn Bindungsname und -namespace von Endpunkten übereinstimmen, stellt dies nicht sicher, dass die Endpunkte ein kompatibles Verhalten oder kompatible Nachrichtenschemas aufweisen oder dass ihre Spezifikationen richtig durch die zugehörigen Anwendungen implementiert wurden. Sie sollten das Verhalten verbundener Anwendungen testen, da ansonsten Inkompatibilitäten erst zur Laufzeit erkannt werden. Weitere Informationen finden Sie unter Gewusst wie: Ersetzen von Webdiensten in Anwendungsdiagrammen.
Nachdem die WSDL-Datei für einen Webdienst veröffentlicht wurde, werden alle Änderungen an der Definition eines Webdiensts wie eine neue WSDL-Bindung behandelt.
Tipp
Wenn Sie die Definition eines Webdiensts ändern, sollten Sie auch den WSDL-Bindungsnamen und/oder den WSDL-Bindungsnamespace ändern. Wenn Sie eine Webdienstdefinition ändern, ohne den zugehörigen WSDL-Bindungsnamen oder -namespace zu ändern, gibt es keinen Hinweis darauf, dass der Webdienst möglicherweise nicht mehr mit verbundenen oder ehemals verbundenen Anwendungen kompatibel ist. Der Standardwert des WSDL-Dienstnamens und des WSDL-Bindungsnamens lautet "WebServiceN", wobei "N" eine Ordinalzahl darstellt. Wenn Sie aber nach dem Implementieren der Anwendung den WSDL-Bindungsnamen in der Klassendatei des Webdiensts löschen, wird der Standardwert in "WebServiceNSoap" geändert. Der Standardwert für den WSDL-Dienstnamespace und den WSDL-Bindungsnamespace lautet "http://tempuri.org". Die Eigenschaften für die WSDL-Dienstbeschreibung und den WSDL-Bindungsspeicherort verfügen über keine Standardwerte. Der Standardwert für den WSDL-Bindungsnamen ist "WebServiceN".
Wenn Sie den WSDL-Bindungsnamen oder -Bindungsnamespace auf einem nicht implementierten Anbieterendpunkt für einen Webdienst ändern, werden die zugehörigen Eigenschaften verbundener und nicht implementierter Consumerendpunkte automatisch bzw. beim nächsten Verbinden aktualisiert. Wenn Sie diese Eigenschaften allerdings auf einem implementierten Anbieterendpunkt für einen Webdienst ändern, werden die verbundenen und implementierten Consumerendpunkte für den Webdienst möglicherweise nicht sofort aktualisiert. Sie können diese Eigenschaften für die Consumerendpunkte aber manuell aktualisieren.
Siehe auch
Aufgaben
Exemplarische Vorgehensweise: Definieren von Anwendungen
Weitere Ressourcen
Einschränken von Anwendungsbeziehungen und Anwendungshostbeziehungen
Definieren von Kommunikationswegen in Anwendungsdiagrammen
Definieren von Endpunkten in Anwendungen