Erstellen von WCF-Diensten für ASP.NET AJAXCreating WCF Services for ASP.NET AJAX

Microsoft ASP.NET AJAX ermöglicht es Ihnen, zügig Webseiten zu erstellen, die mit reaktionsschnellen und vertrauten Benutzeroberflächenelementen eine hohe Benutzerfreundlichkeit bieten.Microsoft ASP.NET AJAX enables you to quickly create Web pages that include a rich user experience with responsive and familiar user interface elements. ASP.NET AJAX bietet Bibliotheken mit Clientskripts, in denen browserübergreifende ECMAScript (JavaScript)- und Dynamic HTML (DHTML)-Technologien integriert sind. Außerdem sind diese Funktionen in die serverbasierte ASP.NET 2.0-Entwicklungsplattform integriert.ASP.NET AJAX provides client-script libraries that incorporate cross-browser ECMAScript (JavaScript) and dynamic HTML (DHTML) technologies, and it integrates them with the ASP.NET 2.0 server-based development platform. Durch die Verwendung von ASP.NET AJAX können Sie die Benutzerfreundlichkeit und die Effizienz Ihrer Webanwendungen verbessern.By using ASP.NET AJAX, you can improve the user experience and the efficiency of your Web applications.

ASP.NET AJAX besteht aus Clientskriptbibliotheken und Serverkomponenten, die zu einem robusten Entwicklungsframework integriert sind.ASP.NET AJAX consists of client-script libraries and of server components that are integrated to provide a robust development framework. So greifen Sie über eine ASP.NET-Seite auf einen Dienst zu: Sobald die Dienst-URL des ASP.NET Script Manager-Steuerelements auf der Seite hinzugefügt wurde, können Dienstvorgänge anhand von JavaScript-Code aufgerufen werden. Dieser Code gleicht einem normalen JavaScript-Funktionsaufruf.To access a service from an ASP.NET page: once the service URL is added to the ASP.NET Script Manager control on the page, service operations may be invoked using JavaScript code that looks exactly like a regular JavaScript function call. Finden Sie unter erfahren Sie ASP.NET AJAX zur Verwendung der Webdienste in AJAX-Framework.See Learn ASP.NET AJAX about the use of Web services within the AJAX framework.

Die meisten Windows Communication Foundation (WCF)-Dienste können als kompatibel mit ASP.NET AJAX-Dienst verfügbar gemacht werden, indem ein entsprechender ASP.NET AJAX-Endpunkt hinzufügen.Most Windows Communication Foundation (WCF) services may be exposed as a service compatible with ASP.NET AJAX by adding an appropriate ASP.NET AJAX endpoint.

Wenn Sie Visual Studio verwenden, können eine vordefinierte Vorlage für AJAX-aktivierten WCF-Dienste zur Verfügung, in der neues Element hinzufügen Dialogfeld beim Arbeiten mit ASP.NET-Websites oder Webanwendungen.If you are using Visual Studio, you may use a pre-built template for AJAX-enabled WCF services, available in the Add New Item dialog when working with ASP.NET Web Sites or Web Applications.

Wenn Sie die Visual Studio-Vorlagen nicht verwenden, gibt es zwei Möglichkeiten, einen ASP.NET AJAX-Endpunkt zu erstellen:If you are not using the Visual Studio templates, there are two ways to create an ASP.NET AJAX endpoint:

Die Web-Programmiermodell beschrieben, die der Web-HTTP-Programmierung Überblick über WCF mit ASP.NET AJAX-Diensten verwendet werden kann.The Web Programming Model described in the WCF Web HTTP Programming Model Overview may be used with ASP.NET AJAX services. Dies gilt insbesondere in folgenden Fällen:Specifically:

  • Sie können das WebGetAttribute-Attribut und das WebInvokeAttribute-Attribut verwenden, um zwischen HTTP GET und HTTP POST-Verben auszuwählen.You can use the WebGetAttribute and WebInvokeAttribute attributes to select between HTTP GET and HTTP POST verbs. Wenn sie richtig verwendet werden, kann die Leistung Ihrer Anwendung bedeutend verbessert werden.If used correctly, this may significantly improve your application’s performance. Weitere Informationen finden Sie unter Vorgehensweise: Auswählen zwischen HTTP POST- und GET HTTP-Anforderungen für ASP.NET AJAX-Endpunkte.For more information, see How to: Choose between HTTP POST and HTTP GET requests for ASP.NET AJAX Endpoints.

  • Sie können die ResponseFormat-Eigenschaft und die ResponseFormat-Eigenschaft verwenden, damit Ihr Dienst XML-Daten anstelle der standardmäßigen JavaScript Object Notation (JSON) zurückgibt.You can use the ResponseFormat and ResponseFormat properties to cause your service to return XML data instead of the default JavaScript Object Notation (JSON). Wenn dies für das ASP.NET AJAX-Framework ausgeführt wird, empfängt der JavaScript-Client ein XML DOM-Objekt.Doing this with the ASP.NET AJAX framework causes the JavaScript client to receive an XML DOM object.

    Warnung

    Der Vorgang muss dafür den Inhaltstyp auf Text/XML festlegen.Your operation must set the content type to text/xml for this to work. Andernfalls empfängt der JavaScript-Client eine Zeichenfolge mit dem XML-Objekt statt eines XML DOM-Objekts.Otherwise, the JavaScript client will receive a string containing the XML instead of an XML DOM object.

    Das folgende Beispiel zeigt einen Vorgang, der XML-Daten zurückgibt, für die der Inhaltstyp richtig festgelegt wurde:The following is an example of an operation that returns XML data with the content type set appropriately:

    [OperationContract, WebGet(ResponseFormat=WebMessageFormat.Xml)]  
    public XElement GetData()  
    {  
    XElement x;  
    //Get some data here...  
    
    WebOperationContext.Current.OutgoingResponse.ContentType = "text/xml";      
    return x;  
    }  
    
  • Es können keine weiteren Eigenschaften für das WebGetAttribute-Attribut und das WebInvokeAttribute-Attribut geändert werden, wenn die Kompatibilität mit ASP.NET AJAX erforderlich ist.No other properties on the WebGetAttribute and WebInvokeAttribute attributes can be changed if compatibility with ASP.NET AJAX is required. Weitere Aspekte des Webprogrammiermodells können verwendet werden, sofern die ASP.NET AJAX-Aufrufkonventionen nicht verletzt werden.Other aspects of the Web Programming Model can be used as long as the ASP.NET AJAX calling conventions are not violated.

Erweitertere Szenarien erfordern zusätzlichen Informationen über AJAX-Unterstützung in WCF interpretiert werden:More advanced scenarios require some additional details of AJAX support in WCF be understood:

  • Um zu verstehen, wie Daten übertragen werden zwischen einem AJAX-Seite-Client und einem WCF-Dienst, der mit JavaScript und Details für JavaScript-Typen wie .NET Framework-Typen zugeordnet werden, finden Sie unter Unterstützung für JSON und andere von Datenformaten übertragen.To understand how data is transferred between an AJAX page client and a WCF service using JavaScript, and for details on how .NET Framework types map to JavaScript types, see Support for JSON and Other Data Transfer Formats.

  • Um ASP.NET-Funktionen nutzen zu können, beispielsweise die URL-basierte Authentifizierung und den Zugriff auf ASP.NET-Sitzungsinformationen, empfiehlt es sich, den ASP.NET-Kompatibilitätsmodus durch Konfiguration zu aktivieren.To take advantage of ASP.NET features, for example, URL-based authentication and accessing the ASP.NET session information, you may want to enable the ASP.NET Compatibility Mode through configuration.

AJAX-Endpunkte in WCF können auch ohne das ASP.NET AJAX-Framework genutzt werden.AJAX endpoints in WCF may even be consumed without the ASP.NET AJAX framework. Hierzu müssen einen Überblick über die Unterstützungsarchitektur der AJAX-Unterstützung in WCF.Doing so requires an understanding of the support architecture of AJAX support in WCF. Eine Erläuterung dieser Architektur, finden Sie unter WCF-HTTP-Objekt Webprogrammiermodell.For a discussion of this architecture, see WCF Web HTTP Programming Object Model. Ein Codebeispiel, das diesen Ansatz veranschaulicht, finden Sie unter der AJAX-Dienst mit JSON und XML-.For a code sample demonstrating this approach, see the AJAX Service with JSON and XML.

Siehe auchSee Also

WCF-Web-HTTP-ProgrammiermodellWCF Web HTTP Programming Model
Vorgehensweise: Hinzufügen eines ASP.NET AJAX-Endpunkts ohne Verwendung einer KonfigurationHow to: Add an ASP.NET AJAX Endpoint Without Using Configuration
Vorgehensweise: Verwenden der Konfiguration zum Hinzufügen eines ASP.NET AJAX-EndpunktsHow to: Use Configuration to Add an ASP.NET AJAX Endpoint
Vorgehensweise: Wählen zwischen HTTP POST- und HTTP GET-Anforderungen für ASP.NET AJAX-EndpunkteHow to: Choose between HTTP POST and HTTP GET requests for ASP.NET AJAX Endpoints