Messaging in .NET Compact Framework
Aktualisiert: November 2007
Die in .NET Compact Framework implementierte Teilmenge von Windows Communication Foundation (WCF) bietet ein einheitliches Programmiermodell zum Erstellen von meldungsorientierten Anwendungen. Entwickler erhalten damit die Möglichkeit, sichere plattformübergreifende Messaginganwendungen zu entwickeln, die die Interaktion mit bestehenden WCF-Diensten auf dem Desktop unterstützen.
Hinweis: |
---|
WCF wird in .NET Compact Framework Version 3.5 und höheren Versionen unterstützt. |
Architektur
Die WCF-Messagingebene für .NET Compact Framework beruht auf der Standarddesktop-WCF-Architektur. Die Messagingebene wird auf dem Gerät unterstützt und ermöglicht dem Gerät die Verbindung mit einem bestehenden WCF-Dienst auf dem Desktop. Die Laufzeitebene des Diensts ist nicht auf dem Gerät vorhanden.
In der folgenden Abbildung sind der Kanalstapel und die zugeordneten Protokolle sowie WCF-Bindungselemente dargestellt.
WCF-Messagingebene auf .NET Compact Framework
Die Unterstützung für die WS-Sicherheit, Spezifikationsversion 1.0, umfasst SOAP-Nachrichtensicherheit mit X.509-Zertifikaten.
Die Message-Klasse stützt sich auf den WS-Adressierungsstandard.
Unterschiede zur Desktopimplementierung
.NET Compact Framework unterstützt nicht den vollständigen Satz Protokolle und Bindungen, der auf dem Desktop unterstützt wird. Weitere Informationen zu bestimmten unterstützten Protokollen und Bindungen finden Sie im Architekturdiagramm im vorherigen Abschnitt.
Die Laufzeitebene des Diensts wird auf .NET Compact Framework nicht unterstützt. Berücksichtigen Sie daher Folgendes, wenn Sie eine Verbindung zu einem bestehenden WCF-Dienst auf dem Desktop herstellen möchten:
Einige Einstellungen in der Datei Web.config müssen geändert werden. Weitere Informationen finden Sie unter Gewusst wie: Verwenden der HTTP-Übertragung.
Wenn Sie Geräteunterstützung für System.ServiceModel-Verträge hinzufügen möchten, können Sie mit dem .NET Compact Framework ServiceModel-Dienstprogramm (NetCFSvcUtil.exe) einen WCF-Clientproxy erstellen. Mit diesem Tool kann eine Unterstützung für viele Vertragsparameter in .NET Compact Framework implementiert werden. NetCFSvcUtil.exe ist in den Power Toys für .NET Compact Framework enthalten. Weitere Informationen finden Sie unter Power Toys for .NET Compact Framework.
Wenn Sie NetCFSvcUtil nicht verwenden, können Sie den erstellten Code mit dem WCF ServiceModel Desktop-Dienstprogramm (SvcUtil.exe) nachverarbeiten. In diesem Fall müssen Sie die nicht unterstützten System.ServiceModel-Attribute aus dem generierten Code entfernen. Weitere Informationen zu diesen Änderungen und ein Beispiel finden Sie unter Gewusst wie: Verwenden der HTTP-Übertragung.
Darüber hinaus wird eine Teilmenge der WCF-Messagingtypen und -Member in der vollständigen Version von .NET Framework unterstützt.
Im nächsten Abschnitt werden die spezifischen Unterschiede für WCF-Sicherheitsfeatures beschrieben.
Sicherheit
WCF-Messaging in .NET Compact Framework unterstützt die auf X.509-Zertifikaten basierende SOAP-Nachrichtensicherheit, die einer Teilmenge der WS-Sicherheitsfeatures entspricht. WS-Sicherheit ist eine Anwendungsebene, die Sie auf jedem unterstützten Transport platzieren können. Die in WCF-Messaging unterstützten Sicherheitsbindungselemente sind SecurityBindingElement und AsymmetricSecurityBindingElement. Zur Implementierung der Sicherheitsfeatures müssen Sie die X.509-Zertifikate als Parameter in einem ClientCredentials-Objekt an den Konstruktor für den WCF-Clientproxy übergeben.
Sicherheit auf Transportebene wird auch für WCF in .NET Compact Framework unterstützt. Dazu gehört Unterstützung für HttpsTransportBindingElement und BasicHttpSecurity.
Die Implementierung von WCF-Sicherheit in .NET Compact Framework weist folgende Unterschiede zur Implementierung auf dem Desktop auf:
Nur eine Teilmenge von WS-Sicherheit, Version 1.0, wird unterstützt.
Aufgrund von Einschränkungen des Betriebssystems wird für die SecurityAlgorithmSuite-Klasse nur die Basic256Rsa15-Eigenschaft unterstützt.
Nachrichtenheader können nicht verschlüsselt werden.
BasicHttpSecurityMode wird nicht unterstützt.
Hinweis: |
---|
Wenn während der erweiterten Sommerzeit für den Zeitstempel die Standardvalidierung von fünf Minuten aktiviert ist, tritt bei ausgehenden Nachrichten, die Nachrichtensicherheit verwenden, aufgrund eines Zeitstempelvalidierungsfehlers ein Fehler auf. Die erweiterte Sommerzeit findet zwischen dem zweiten Sonntag im März und dem ersten Sonntag im April sowie dem letzten Sonntag im Oktober und dem ersten Sonntag im November statt. Sie können dieses Problem beheben, indem Sie die Aktualisierung Daylight Saving Time (DST) 2007 installieren. Dies gilt nicht für Geräte, auf denen Windows Mobile 5.0 Build 15096.3.0 und höher oder Windows Mobile 6.0 und höher ausgeführt wird. |
Bereitstellung
Die WCF-Nachrichten-DLLs sind in den .NET Compact Framework-CAB-Dateien enthalten. Die verwalteten Assemblys werden im globalen Assemblycache installiert.
Die WCF-Nachrichten-DLLs für das Gerät umfassen Folgendes:
System.ServiceModel.dll
System.Runtime.Serialization.dll
Die Bereitstellung umfasst auch die Bereitstellung der WCF Exchange Server-E-Mail-Übertragung. Weitere Informationen zur Bereitstellung auf dem Gerät und auf dem Desktop finden Sie unter WCF Exchange Server-E-Mail-Übertragung.
Protokollierung
WCF auf dem Desktop .NET Framework unterstützt drei Arten der Protokollierung: Ablaufverfolgung, Messaging und Ereignisprotokollierung. WCF auf .NET Compact Framework unterstützt nur die Ablaufverfolgungsprotokollierung zur Verfolgung von Codeausnahmen. Warn- und Fehlermeldungen werden jedoch nicht protokolliert. Zum Konfigurieren der Protokollierung wird ein Registrierungsschlüssel verwendet.
Sie müssen zuerst die Protokollierung für .NET Compact Framework aktivieren, damit WCF-Informationen protokolliert werden. Weitere Informationen zum Aktivieren der Protokollierung und des WCF-Ablaufverfolgungsprotokolls finden Sie unter Gewusst wie: Erstellen von Protokolldateien.
Siehe auch
Konzepte
Weitere Ressourcen
Windows Communication Foundation (WCF)-Entwicklung und .NET Compact Framework