Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A ASP.NET webszolgáltatások és a Windows Communication Foundation (WCF) webszolgáltatások közötti interoperabilitás úgy érhető el, hogy a mindkét technológiával megvalósított szolgáltatások megfelelnek az WS-I Basic Profile 1.1 specifikációnak. ASP.NET WS-I Alapprofil 1.1-nek megfelelő webszolgáltatások a WCF-ügyfelekkel együttműködve, a WCF rendszer által biztosított kötéssel működnek együtt. BasicHttpBinding
Használja az ASP.NET 2.0 opciót, hogy a WebService és a WebMethodAttribute attribútumokat ne egy osztályhoz, hanem egy interfészhez adja hozzá, és írjon egy osztályt az interfész implementálásához, ahogyan az az alábbi mintakódban látható.
[WebService]
public interface IEcho
{
[WebMethod]
string Echo(string input);
}
public class Service : IEcho
{
public string Echo(string input)
{
return input;
}
}
Ezt a lehetőséget érdemes használni, mert az WebService attribútummal rendelkező felület a szolgáltatás által végrehajtott műveletekre vonatkozó szerződést alkot, amely különböző osztályokkal újra felhasználható, amelyek különböző módokon implementálhatják ezt a szerződést.
Kerülje az SoapDocumentServiceAttribute attribútum használatát az üzeneteknek a SOAP-üzenet törzselemének teljesen meghatározott neve helyett a SOAPAction
HTTP-fejléc alapján történő metódusokhoz irányítására. A WCF a HTTP-fejlécet használja az SOAPAction
útválasztási üzenetekhez.
Az XML, amelybe XmlSerializer alapértelmezés szerint szerializál egy típust, szemantikailag megegyezik azzal az XML-sel, amelybe a DataContractSerializer szerializál egy típust, feltéve, hogy az XML névterét explicit módon definiálja. Az ASP.NET-webszolgáltatásokkal való használatra szánt adattípus meghatározásakor, a WCF átvételére készülve, végezze el a következőket:
Adja meg a típust XML-séma helyett .NET-keretrendszerosztályokkal.
Csak az SerializableAttribute osztályt és az XmlRootAttribute osztályt adja hozzá, az utóbbi használatával explicit módon határozza meg a típus névterét. Ne adjon hozzá további attribútumokat a System.Xml.Serialization névtérből annak szabályozásához, hogy a .NET-keretrendszer osztály hogyan legyen XML-be fordítva.
Ennek a megközelítésnek az alkalmazásával a .NET-osztályokat később adatszerződésekké DataContractAttributeDataMemberAttribute alakíthatja anélkül, hogy jelentősen módosítaná azt az XML-t, amelybe az osztályok átvitelre szerializálva vannak. A ASP.NET webszolgáltatások üzeneteiben használt típusok a WCF-alkalmazások adatszerződéseként dolgozhatók fel, ami többek között jobb teljesítményt eredményez a WCF-alkalmazásokban.
Kerülje az Internet Information Services (IIS) által biztosított hitelesítési beállítások használatát. A WCF-ügyfelek nem támogatják őket. Ha egy szolgáltatást biztonságossá kell tenni, használja a WCF által biztosított lehetőségeket, mivel ezek a lehetőségek robusztusak, és szabványos protokollokon alapulnak.
A ServiceModel HttpModule betöltése által okozott teljesítményhatás
A .NET-keretrendszer 3.0-s verziója a WCF-t HttpModule
a legfelső szintű Web.config fájlba telepítette, így minden ASP.NET alkalmazás engedélyezve volt. Ez hatással lehet a teljesítményre, így eltávolíthatja ServiceModel
a Web.config fájlt az alábbi példában látható módon.
<httpModules>
<remove name="ServiceModel" />
</httpModules>