Vorgehensweise: Verwenden der Konfiguration zum Hinzufügen eines ASP.NET AJAX-Endpunkts
Mit Windows Communication Foundation (WCF) können Sie einen Dienst erstellen, der einen ASP.NET AJAX-aktivierten Endpunkt verfügbar macht, der auf einer Client-Website von JavaScript aufgerufen werden kann. Zum Erstellen eines solchen Endpunkts können Sie entweder (wie bei allen anderen Windows Communication Foundation (WCF)-Endpunkten) eine Konfigurationsdatei verwenden, oder Sie können eine Methode einsetzen, die keine Konfigurationselemente benötigt. In diesem Thema wird die Konfigurationsmethode veranschaulicht.
Der Teil der Prozedur, durch den der Dienstendpunkt ASP.NET AJAX-aktiviert wird, konfiguriert den Endpunkt für die Verwendung von WebHttpBinding und fügt das <enableWebScript>-Endpunktverhalten hinzu. Die Schritte zum Implementieren und Hosten des Diensts nach der Konfiguration des Endpunkts sind den Schritten ähnlich, die von jedem WCF-Dienst verwendet werden. Ein Arbeitsbeispiel finden Sie unter AJAX-Dienst mit HTTP POST.
Weitere Informationen über zum Konfigurieren eines ASP.NET AJAX-Endpunkts ohne Konfiguration finden Sie unter Vorgehensweise: Hinzufügen eines ASP.NET AJAX-Endpunkts ohne Verwendung einer Konfiguration.
So erstellen Sie einen WCF-Basisdienst
Definieren Sie einen WCF-Basisdienstvertrag mit einer Schnittstelle, die mit dem ServiceContractAttribute-Attribut gekennzeichnet ist. Markieren Sie jeden Vorgang mit OperationContractAttribute. Stellen Sie sicher, dass Sie die Namespace-Eigenschaft festlegen.
[ServiceContract(Namespace = "MyService")] public interface ICalculator { [OperationContract] // This operation returns the sum of d1 and d2. double Add(double n1, double n2); //Other operations omitted… }
Implementieren Sie den
ICalculator
-Dienstvertrag mitCalculatorService
.public class CalculatorService : ICalculator { public double Add(double n1, double n2) { return n1 + n2; } //Other operations omitted…
Definieren Sie einen Namespace für die
ICalculator
-Implementierung und dieCalculatorService
-Implementierung, indem Sie sie in einen Namespaceblock einschließen.Namespace Microsoft.Ajax.Samples { //Include the code for ICalculator and Caculator here. }
So erstellen Sie einen ASP.NET AJAX-Endpunkt für den Dienst
Erstellen Sie eine Verhaltenskonfiguration, und geben Sie das <enableWebScript>-Verhalten für ASP.NET AJAX-aktivierte Endpunkte des Diensts an.
<system.serviceModel> <behaviors> <endpointBehaviors> <behavior name="AspNetAjaxBehavior"> <enableWebScript /> </behavior> </endpointBehaviors> </behaviors> </system.serviceModel>
Erstellen Sie einen Endpunkt für den Dienst, der WebHttpBinding und das ASP.NET AJAX-Verhalten verwendet, das im vorherigen Schritt definiert wurde.
<system.serviceModel> <services> <service name="Microsoft.Ajax.Samples.CalculatorService"> <endpoint address="" behaviorConfiguration="AspNetAjaxBehavior" binding="webHttpBinding" contract="Microsoft.Ajax.Samples.ICalculator" /> </service> </services> </system.serviceModel>
So hosten Sie den Dienst in IIS
Um den Dienst in IIS zu hosten, erstellen Sie in der Anwendung eine neue Datei mit dem Namen service und einer SVC-Erweiterung. Bearbeiten Sie diese Datei, indem Sie die entsprechenden @ServiceHost-Direktiveninformationen für den Dienst hinzufügen. Die Dienstdatei für das
CalculatorService
-Beispiel enthält z. B. folgende Informationen.<%@ServiceHost language=c# Debug="true" Service="Microsoft.Ajax.Samples.CalculatorService" %>
Weitere Informationen über zum Hosting in IIS finden Sie unter Gewusst wie: Hosten eines WCF-Diensts in IIS.
So rufen Sie den Dienst auf
- Der Endpunkt ist für eine leere Adresse konfiguriert, die relativ zur SVC-Datei festgelegt ist. Daher ist der Dienst jetzt verfügbar und kann durch Senden von Anforderungen an "service.svc/<operation>" aufgerufen werden – beispielsweise durch "service.svc/Add" für den
Add
-Vorgang. Sie können ihn verwenden, indem Sie die Endpunkt-URL in die Scripts-Auflistung des ASP.NET AJAX Script Manager-Steuerelements eingeben. Ein Beispiel hierfür finden Sie unter AJAX-Dienst mit HTTP POST.
Siehe auch
Aufgaben
Vorgehensweise: Migrieren AJAX-aktivierter ASP.NET-Webdienste nach WCF