Rahmenvertrag für dienstleistungen Muster

Eine einzelne Klasse kann eine beliebige Anzahl von Serviceverträgen implementieren, indem diese Servicevertragsschnittstellen implementiert werden. Alle Methoden, die nicht über ein OperationContractAttribute-Attribut verfügen, sind keine Dienstvorgänge und werden nicht von WCF-Diensten verfügbar gemacht. Das Duplexmuster ist aufgrund des zusätzlichen Mechanismus für die Kommunikation mit dem Client etwas komplexer als die Anforderungs-/Antwort- oder Uniwegmuster. Dieses Thema bietet eine konzeptionelle Ausrichtung auf hoher Ebene zum Entwerfen und Implementieren von WCF-Diensten. Unterthemen bieten detailliertere Informationen zu den Besonderheiten von Entwurf und Implementierung. Vor dem Entwerfen und Implementieren Ihrer WCF-Anwendung wird empfohlen: Im folgenden Codebeispiel wird z. B. weder die ProtectionLevel- noch die ProtectionLevel-Eigenschaft im Vertrag festgelegt. Keine Rücksendemeldung bedeutet auch, dass kein SOAP-Fehler zurückgegeben werden kann, um Fehler in der Verarbeitung oder Kommunikation anzuzeigen. (Das Kommunizieren von Fehlerinformationen bei unidirektionazten Vorgängen erfordert ein Duplex-Nachrichtenaustauschmuster.) Beachten Sie, dass, sofern Sie kein anderes zugrunde liegendes Nachrichtenmuster angeben, sogar Dienstvorgänge, die void zurückgeben (Nichts in Visual Basic), den Austausch von Ansaglichs-/Antwortnachrichten sind. Das Ergebnis für Ihren Vorgang ist, dass der Client die Verarbeitung stoppt, bis die Rückgabenachricht empfangen wird, es sei denn, ein Client ruft den Vorgang asynchron auf, obwohl diese Nachricht im Normalfall leer ist. Das folgende Codebeispiel zeigt einen Vorgang, der erst zurückgegeben wird, wenn der Client als Antwort eine leere Nachricht erhalten hat. Dieser additive Anforderungsprozess ist beim Entwerfen, Implementieren, Konfigurieren und Hosten einer Windows Communication Foundation (WCF)-Dienstanwendung zu beachten.

Der Vertrag kann z. B. angeben, dass er eine Sitzung unterstützen muss. Wenn dies der Fall ist, müssen Sie die Bindung konfigurieren, um diese vertragliche Anforderung zu unterstützen, da die Dienstimplementierung nicht funktioniert. Wenn Ihr Dienst eine integrierte Windows-Authentifizierung erfordert und in Internetinformationsdiensten (Internet Information Services, IIS) gehostet wird, muss in der Webanwendung, in der sich der Dienst befindet, die integrierte Windows-Authentifizierung aktiviert und der anonyme Support deaktiviert sein. Weitere Informationen zu den Features und Auswirkungen der verschiedenen Diensthostanwendungstypen finden Sie unter Hostingdienste. Beim Entwerfen Ihres Vertrags müssen Sie auch die Nachrichtenschutzstufe der Dienste festlegen, die Ihren Vertrag implementieren.