Sdílet prostřednictvím


Interoperabilita s webovými službami ASP.NET

Interoperabilitu webových služeb ASP.NET a webových služeb WCF (Windows Communication Foundation) lze dosáhnout zajištěním toho, aby služby implementované pomocí obou technologií odpovídaly specifikaci základního profilu WS-I 1.1. ASP.NET webové služby, které odpovídají základnímu profilu WS-I 1.1, jsou interoperabilní s klienty WCF pomocí vazby poskytované systémem WCF, BasicHttpBinding.

Použijte ASP.NET 2.0 možnost přidání WebService a WebMethodAttribute atributů do rozhraní místo do třídy a zápis třídy pro implementaci rozhraní, jak je znázorněno v následujícím vzorovém kódu.

[WebService]  
public interface IEcho  
{  
    [WebMethod]  
    string Echo(string input);  
}  
  
public class Service : IEcho  
{  
  
   public string Echo(string input)  
   {  
        return input;  
    }  
}  

Použití této možnosti je upřednostňované, protože rozhraní s WebService atributem představuje kontrakt pro operace prováděné službou, které lze opakovaně použít s různými třídami, které mohou implementovat stejný kontrakt různými způsoby.

SoapDocumentServiceAttribute Nepoužívejte atribut k tomu, aby zprávy směrovaly na metody založené na plně kvalifikovaném názvu základního prvku zprávy SOAP místo hlavičky SOAPAction HTTP. WCF používá hlavičku SOAPAction HTTP pro směrování zpráv.

XML, do kterého XmlSerializer serializuje typ ve výchozím nastavení je sémanticky identický s XML, do kterého DataContractSerializer serializuje typ, za předpokladu, že obor názvů pro XML je explicitně definován. Při definování datového typu pro použití s ASP. Služby NETWeb v očekávání přechodu WCF proveďte následující akce:

  • Definujte typ pomocí tříd rozhraní .NET Framework místo schématu XML.

  • Přidejte pouze a SerializableAttribute do XmlRootAttribute třídy pomocí druhé třídy explicitně definovat obor názvů pro typ. Nepřidávejte další atributy z System.Xml.Serialization oboru názvů pro řízení způsobu překladu třídy .NET Framework do XML.

  • Přijetím tohoto přístupu byste měli být schopni později vytvořit třídy .NET do datových DataContractAttribute kontraktů s přidáním a DataMemberAttribute bez významné změny XML, do kterých jsou třídy serializovány pro přenos. Typy používané ve zprávách ASP.NET webové služby lze zpracovávat jako kontrakty dat aplikacemi WCF, které poskytují mimo jiné výhody, lepší výkon v aplikacích WCF.

Nepoužívejte možnosti ověřování poskytované službou Internetová informační služba (IIS). Klienti WCF je nepodporují. Pokud musí být služba zabezpečená, použijte možnosti poskytované WCF, protože tyto možnosti jsou robustní a jsou založené na standardních protokolech.

Dopad na výkon způsobený načtením modulu HttpModule Modelu služby

V rozhraní .NET Framework 3.0 byla služba WCF HttpModule nainstalována v kořenovém souboru Web.config tak, aby každá ASP.NET aplikace byla povolena WCF. To může mít vliv na výkon, takže můžete odebrat ServiceModel soubor Web.config, jak je znázorněno v následujícím příkladu.

<httpModules>  
    <remove name="ServiceModel" />  
</httpModules>

Viz také