Procédure : utiliser la configuration pour ajouter un point de terminaison AJAX ASP.NET
Windows Communication Foundation (WCF) vous permet de créer un service qui rend disponible un point de terminaison compatible ASP.NET AJAX pouvant être appelé à partir de JavaScript sur un site web client. Pour créer un point de terminaison de ce type, vous pouvez utiliser un fichier de configuration, comme pour tous les autres points de terminaison Windows Communication Foundation (WCF), ou utiliser une méthode qui ne requiert aucun élément de configuration. Cette rubrique décrit l'approche utilisant le fichier de configuration.
La partie de la procédure qui permet de rendre le point de terminaison du service compatible ASP.NET AJAX consiste à configurer le point de terminaison pour utiliser WebHttpBinding et ajouter le comportement du point de terminaison <enableWebScript>. Après avoir configuré le point de terminaison, les étapes permettant d’implémenter et d’héberger le service sont semblables à celles utilisées pour tout service WCF. Pour obtenir un exemple fonctionnel, consultez Service AJAX utilisant HTTP POST.
Pour plus d’informations sur la configuration d’un point de terminaison AJAX ASP.NET sans utiliser de configuration, consultez Guide pratique pour ajouter un point de terminaison AJAX ASP.NET sans utiliser de configuration.
Pour créer un service WCF de base
Définissez un contrat de service WCF de base en utilisant une interface marquée avec l’attribut ServiceContractAttribute. Marquez chaque opération avec OperationContractAttribute. Assurez-vous de définir la propriété Namespace.
[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… }
Implémentez le contrat de service
ICalculator
avec unCalculatorService
.public class CalculatorService : ICalculator { public double Add(double n1, double n2) { return n1 + n2; } // Other operations omitted… }
Définissez un espace de noms pour les implémentations
ICalculator
etCalculatorService
en les encapsulant dans un bloc Namespace.namespace Microsoft.Ajax.Samples { //Include the code for ICalculator and Calculator here. }
Pour créer un point de terminaison ASP.NET AJAX pour le service
Créez une configuration de comportement et spécifiez le comportement <enableWebScript> pour les points de terminaison compatibles ASP.NET AJAX du service.
<system.serviceModel> <behaviors> <endpointBehaviors> <behavior name="AspNetAjaxBehavior"> <enableWebScript /> </behavior> </endpointBehaviors> </behaviors> </system.serviceModel>
Créez un point de terminaison pour le service qui utilise WebHttpBinding et le comportement ASP.NET AJAX défini dans l'étape précédente.
<system.serviceModel> <services> <service name="Microsoft.Ajax.Samples.CalculatorService"> <endpoint address="" behaviorConfiguration="AspNetAjaxBehavior" binding="webHttpBinding" contract="Microsoft.Ajax.Samples.ICalculator" /> </service> </services> </system.serviceModel>
Pour héberger le service dans IIS
Pour héberger le service dans IIS, créez un nouveau fichier nommé "Service" avec une extension .svc dans l’application. Modifiez ce fichier en ajoutant les informations appropriées de la directive @ServiceHost pour le service. Le contenu du fichier Service pour l'exemple
CalculatorService
contient les informations suivantes :<%@ServiceHost language=c# Debug="true" Service="Microsoft.Ajax.Samples.CalculatorService" %>
Pour plus d’informations sur l’hébergement dans IIS, consultez Guide pratique pour héberger un service WCF dans IIS.
Pour appeler le service
- Le point de terminaison est configuré au niveau d’une adresse vide relative au fichier .svc. Par conséquent, le service est maintenant disponible et peut être appelé par l’envoi de demandes à service.svc/<opération> ; par exemple, service.svc/Add pour l’opération
Add
. Vous pouvez l’utiliser en entrant le point l’URL du point de terminaison dans la collection Scripts du contrôle Script Manager ASP.NET AJAX . Pour obtenir un exemple , consultez Service AJAX utilisant HTTP POST.