Freigeben über


Einfacher AJAX-Dienst

In diesem Beispiel wird die Verwendung von Windows Communication Foundation (WCF) zum Erstellen eines einfachen AJAX-Diensts (ASP.NET Asynchronous JavaScript and XML) beschrieben. Ein AJAX-Dienst ist ein Dienst, auf den Sie durch die Verwendung eines JavaScript-Codes über einen Webbrowserclient zugreifen können. Der Dienst nutzt das WebGetAttribute-Attribut, um sicherzustellen, dass der Dienst auf HTTP GET-Anforderungen antwortet und für die Verwendung von JSON-Daten (JavaScript Object Notation) für Antworten konfiguriert ist.

Die AJAX-Unterstützung in WCF ist zur Verwendung mit ASP.NET AJAX über das ScriptManager-Steuerelement optimiert. Ein Beispiel für die Verwendung von WCF mit ASP.NET AJAX finden Sie unter AJAX-Beispiele.

Tipp

Zum Erstellen und Ausführen dieses Beispiels muss .NET Framework, Version 3.5 installiert sein. Zum Öffnen des Projekts und der Projektmappendateien ist Visual Studio 2008 erforderlich.

Tipp

Die Setupprozedur und die Erstellungsanweisungen für dieses Beispiel befinden sich am Ende dieses Themas.

Im folgenden Code wird das WebGetAttribute-Attribut auf den Add-Vorgang angewandt, um sicherzustellen, dass der Dienst auf HTTP GET-Anforderungen antwortet. Der Einfachheit halber nutzt der Code GET (Sie können eine HTTP GET-Anforderung von jedem Webbrowser aus erstellen). Sie können GET auch verwenden, um Caching zu aktivieren. Bei Abwesenheit des WebGetAttribute-Attributs ist HTTP POST der Standardwert.

[ServiceContract(Namespace = "SimpleAjaxService")]
public interface ICalculator
{
    [OperationContract]
    [WebGet]
    double Add(double n1, double n2);
    //Other operations omitted…
}

Sie können einen AJAX-Endpunkt auf dem Dienst erstellen, indem Sie die <webHttpBinding>-Standardbindung und das <enableWebScript>-Verhalten in der Dienstkonfigurationsdatei verwenden.

<system.serviceModel>
    <behaviors>
        <endpointBehaviors>
            <behavior name="Microsoft.Ajax.Samples.CalculatorServiceAspNetAjaxBehavior">
                <enableWebScript />
            </behavior>
        </endpointBehaviors>
    </behaviors>
    <services>
        <service name="Microsoft.Ajax.Samples.CalculatorService">
            <endpoint address=" "
                behaviorConfiguration="Microsoft.Ajax.Samples.CalculatorServiceAspNetAjaxBehavior" 
                binding="webHttpBinding"
                contract="Microsoft.Ajax.Samples.ICalculator" />
        </service>
    </services>
</system.serviceModel>

Das enableWebScript-Verhalten setzt das Standarddatenformat für den Dienst auf JSON anstelle von XML. Um den Dienst aufzurufen, navigieren Sie zu https://localhost/ServiceModelSamples/service.svc/Add?n1=100&n2=200, nachdem Sie die weiter unten in diesem Thema aufgeführten Schritte zu Setup und Erstellung durchgeführt haben. Diese Testfunktion wird durch die Verwendung einer HTTP GET-Anforderung aktiviert.

Die Clientwebseite SimpleAjaxClientPage.aspx enthält ASP.NET-Code zum Aufrufen des Diensts, wenn der Benutzer auf eine der Vorgangsschaltflächen auf der Seite klickt. Das ScriptManager-Steuerelement wird verwendet, um dem Dienst durch JavaScript einen Proxy verfügbar zu machen.

<asp:ScriptManager ID="ScriptManager" runat="server">
     <Services>
          <asp:ServiceReference Path="service.svc" />
     </Services>
</asp:ScriptManager>

Der lokale Proxy wird instanziiert, und Vorgänge werden mit dem folgenden JavaScript-Code aufgerufen.

// Code for extracting arguments n1 and n2 omitted…
// Instantiate a service proxy
var proxy = new SimpleAjaxService.ICalculator();
// Code for selecting operation omitted…
proxy.Add(parseFloat(n1), parseFloat(n2), onSuccess, onFail, null);

Ist der Dienstaufruf erfolgreich, ruft der Code einen onSuccess-Handler auf, und das Ergebnis des Vorgangs wird in einem Textfeld angezeigt.

function onSuccess(mathResult){
     document.getElementById("result").value = mathResult;
}

So richten Sie das Beispiel ein, erstellen es und führen es aus

  1. Stellen Sie sicher, dass Sie die Setupanweisungen Beispiele zum einmaligen Setupverfahren für Windows Communication Foundation ausführen.

  2. Erstellen Sie die Projektmappe SimpleAjaxService.sln, wie in Erstellen der Windows Communication Foundation-Beispiele beschrieben.

  3. Navigieren Sie zu https://localhost/ServiceModelSamples/SimpleAjaxClientPage.aspx (öffnen Sie SimpleAjaxClientPage.aspx nicht vom Projektverzeichnis im Browser aus).

Send comments about this topic to Microsoft.
© 2007 Microsoft Corporation. All rights reserved.