Megosztás a következőn keresztül:


Együttműködés a ASP.NET Web Services szolgáltatással

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>

Lásd még