Dela via


Skapa WCF-tjänster för ASP.NET AJAX

Med Microsoft ASP.NET AJAX kan du snabbt skapa webbsidor som innehåller en omfattande användarupplevelse med dynamiska och välbekanta användargränssnittselement. ASP.NET AJAX tillhandahåller klientskriptbibliotek som innehåller ECMAScript-tekniker (JavaScript) och dynamiska HTML-tekniker (DHTML) och integrerar dem med ASP.NET 2.0-serverbaserad utvecklingsplattform. Genom att använda ASP.NET AJAX kan du förbättra användarupplevelsen och effektiviteten i dina webbprogram.

ASP.NET AJAX består av klientskriptbibliotek och serverkomponenter som är integrerade för att tillhandahålla ett robust utvecklingsramverk. För att komma åt en tjänst från en ASP.NET sida: När tjänst-URL:en har lagts till i ASP.NET Script Manager-kontrollen på sidan kan tjänståtgärder anropas med JavaScript-kod som ser exakt ut som ett vanligt JavaScript-funktionsanrop.

De flesta WCF-tjänster (Windows Communication Foundation) kan exponeras som en tjänst som är kompatibel med ASP.NET AJAX genom att lägga till en lämplig ASP.NET AJAX-slutpunkt.

Om du använder Visual Studio kan du använda en fördefinierad mall för AJAX-aktiverade WCF-tjänster, som är tillgänglig i dialogrutan Lägg till nytt objekt när du arbetar med ASP.NET webbplatser eller webbprogram.

Om du inte använder Visual Studio-mallarna finns det två sätt att skapa en ASP.NET AJAX-slutpunkt:

Webbprogrammeringsmodellen som beskrivs i översikten över WCF Web HTTP Programming Model kan användas med ASP.NET AJAX-tjänster. Specifikt:

  • Du kan använda attributen WebGetAttribute och WebInvokeAttribute för att välja mellan HTTP GET- och HTTP POST-verb. Om det används på rätt sätt kan detta avsevärt förbättra programmets prestanda. Mer information finns i Så här väljer du mellan HTTP POST- och HTTP GET-begäranden för ASP.NET AJAX-slutpunkter.

  • Du kan använda ResponseFormat egenskaperna och ResponseFormat för att få tjänsten att returnera XML-data i stället för JSON (Standard JavaScript Object Notation). Om du gör detta med ASP.NET AJAX-ramverket tar JavaScript-klienten emot ett XML DOM-objekt.

    Varning

    Åtgärden måste ange innehållstypen till text/xml för att det ska fungera. Annars får JavaScript-klienten en sträng som innehåller XML i stället för ett XML DOM-objekt.

    Följande är ett exempel på en åtgärd som returnerar XML-data med innehållstypen inställd på rätt sätt:

    [OperationContract, WebGet(ResponseFormat=WebMessageFormat.Xml)]
    public XElement GetData()
    {
        XElement x;
        //Get some data here...
    
        WebOperationContext.Current.OutgoingResponse.ContentType = "text/xml";
        return x;
    }
    
  • Inga andra egenskaper för attributen WebGetAttribute och WebInvokeAttribute kan ändras om kompatibilitet med ASP.NET AJAX krävs. Andra aspekter av webbprogrammeringsmodellen kan användas så länge de ASP.NET AJAX-anropskonventionerna inte överträds.

Mer avancerade scenarier kräver viss ytterligare information om AJAX-stöd i WCF förstås:

  • Information om hur data överförs mellan en AJAX-sidklient och en WCF-tjänst med hjälp av JavaScript och mer information om hur .NET Framework-typer mappas till JavaScript-typer finns i Stöd för JSON- och andra dataöverföringsformat.

  • Om du vill dra nytta av ASP.NET funktioner, till exempel URL-baserad autentisering och åtkomst till ASP.NET sessionsinformation, kanske du vill aktivera ASP.NET kompatibilitetsläge via konfiguration.

AJAX-slutpunkter i WCF kan till och med förbrukas utan det ASP.NET AJAX-ramverket. För att göra det krävs en förståelse för stödarkitekturen för AJAX-stöd i WCF. En diskussion om den här arkitekturen finns i WCF Web HTTP Programming Object Model(WCF Web HTTP Programming Object Model). Ett kodexempel som visar den här metoden finns i AJAX-tjänsten med JSON och XML.

Se även