Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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