Föregripa införandet av Windows Communication Foundation: Underlätta framtida integrering
Om du använder ASP.NET i dag och förväntar dig att använda WCF i framtiden ger det här avsnittet vägledning för att säkerställa att nya ASP.NET webbtjänster fungerar bra tillsammans med WCF-program.
Allmänt Rekommendationer
Anta ASP.NET 2.0 för alla nya tjänster. Detta ger åtkomst till förbättringarna och förbättringarna av den nya versionen. Men det gör det också möjligt att använda ASP.NET 2.0-komponenter tillsammans med WCF-komponenter i samma program.
Protokoll
Använd ASP.NET 2.0:s nya anläggning för att verifiera överensstämmelse med WS-I Basic Profile 1.1:
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(
ConformsTo = WsiProfiles.BasicProfile1_1,
EmitConformanceClaims=true)]
public interface IEcho
ASP.NET webbtjänster som överensstämmer med WS-I Basic Profile 1.1 kan samverka med WCF-klienter med hjälp av WCF-fördefinierad bindning, BasicHttpBinding.
Tjänstutveckling
Undvik att använda SoapDocumentServiceAttribute attributet för att dirigera meddelanden till metoder baserat på det fullständigt kvalificerade namnet på brödtextelementet i SOAP-meddelandet i stället för SOAPAction HTTP-huvudet. WCF använder SOAPAction HTTP-huvudet för att dirigera meddelanden.
Datarepresentation
Xml-koden som XmlSerializer serialiserar en typ till är som standard semantiskt identisk med DEN XML som DataContractSerializer serialiserar en typ i, förutsatt att namnområdet för XML uttryckligen har definierats. När du definierar en datatyp för användning med ASP.NET webbtjänster i väntan på att WCF ska införas i framtiden gör du följande:
Definiera typen med hjälp av .NET Framework-klasser i stället för XML-schema.
Lägg bara SerializableAttribute till och XmlRootAttribute till klassen med hjälp av det senare för att explicit definiera namnområdet för typen. Lägg inte till ytterligare attribut från System.Xml.Serialization namnområdet för att styra hur .NET Framework-klassen ska översättas till XML.
Genom att använda den här metoden bör du senare kunna göra .NET-klasserna till datakontrakt med tillägget av DataContractAttribute och DataMemberAttribute utan att avsevärt ändra XML-koden som klasserna serialiseras till för överföring. De typer som används i meddelanden av ASP.NET webbtjänster kommer att kunna bearbetas som datakontrakt av WCF-program, vilket bland annat ger bättre prestanda i WCF-program.
Säkerhet
Undvik att använda de autentiseringsalternativ som tillhandahålls av Internet Information Services (IIS). WCF-klienter stöder dem inte. Om en tjänst behöver skyddas använder du de alternativ som tillhandahålls av WCF, eftersom dessa alternativ är rikare och baseras på standardprotokoll.