Vorbereitungen für Windows Communication Foundation: einfachere Migration in der Zukunft

Wenn Sie heute ASP.NET verwenden und vorhaben, zukünftig WCF zu verwenden, bietet dieses Thema Tipps, die gewährleisten, dass neue ASP.NET-Webdienste mit WCF-Anwendungen ordnungsgemäß zusammenwirken.

Allgemeine Empfehlungen

Übernehmen Sie ASP.NET 2.0 auch für neue Dienste. Dadurch stellen Sie den Zugriff auf die Verbesserungen und Erweiterungen der neuen Version bereit. Sie erhalten so auch die Möglichkeit, ASP.NET 2.0-Komponenten zusammen mit WCF-Komponenten in derselben Anwendung zu verwenden.

Protokolle

Verwenden Sie die neue Funktion von ASP.NET 2.0 zum Überprüfen der Konformität mit WS-I Basic Profile 1.1:

[WebService(Namespace = "http://tempuri.org/")]  
[WebServiceBinding(  
     ConformsTo = WsiProfiles.BasicProfile1_1,  
     EmitConformanceClaims=true)]  
public interface IEcho  

ASP.NET-Webdienste, die mit WS-I Basic Profile 1.1 übereinstimmen, sind mit WCF-Clients interoperabel, wenn die von WCF vordefinierte BasicHttpBinding-Bindung verwendet wird.

Dienstentwicklung

Verwenden Sie das SoapDocumentServiceAttribute-Attribut nicht, um Nachrichten basierend auf dem voll qualifizierten Namen des Textelements der SOAP-Nachricht anstatt des SOAPAction HTTP-Headers an Methoden weiterzuleiten. WCF verwendet den SOAPAction-HTTP-Header zum Weiterleiten von Nachrichten.

Datendarstellung

Die XML, in die XmlSerializer standardmäßig einen Typ serialisiert, ist semantisch identisch mit der XML, in die DataContractSerializer einen Typ serialisiert, vorausgesetzt, der Namespace ist für die XML explizit definiert. Wenn ein Datentyp für die Verwendung mit ASP.NET-Webdiensten in Antizipation einer zukünftigen WCF-Integration definiert wird, gehen Sie wie folgt vor:

  1. Definieren Sie den Typ mit .NET Framework-Klassen und nicht mit dem XML-Schema.

  2. Fügen Sie der Klasse lediglich SerializableAttribute und XmlRootAttribute hinzu, wobei Sie mit dem zweiten Attribut den Namespace für den Typ explizit definieren. Fügen Sie keine zusätzlichen Attribute aus dem System.Xml.Serialization-Namespace hinzu, um zu steuern, wie die .NET Framework-Klasse in XML übersetzt wird.

Wenn Sie diese Vorgehensweise wählen, sollte es später kein Problem darstellen, die .NET-Klassen in Datenverträge umzuwandeln, indem Sie DataContractAttribute und DataMemberAttribute hinzufügen, ohne die XML erheblich zu ändern, in die die Klassen für die Übertragung serialisiert werden. Die von den ASP.NET-Webdiensten verwendeten Typen können von WCF-Anwendungen als Datenverträge verarbeitet werden, was u. a. zu einer höheren Leistung der WCF-Anwendungen führt.

Sicherheit

Vermeiden Sie die Verwendung der von den Internetinformationsdiensten (IIS) bereitgestellten Authentifizierungsoptionen. WCF-Clients unterstützen diese nicht. Falls ein Dienst gesichert werden muss, verwenden Sie die von WCF bereitgestellten Optionen, da diese Optionen leistungsstärker sind und auf Standardprotokollen basieren.

Siehe auch