Procedura: aggiungere un endpoint ASP.NET AJAX con l'uso della configurazione

Windows Communication Foundation (WCF) consente di creare un servizio che rende disponibile un endpoint abilitato ASP.NET AJAX che può essere chiamato da JavaScript in un sito Web client. Per creare tale endpoint è possibile usare un file di configurazione, come con tutti gli altri endpoint WCF (Windows Communication Foundation), o un metodo che non richiede elementi di configurazione. In questo argomento viene illustrato l'approccio tramite configurazione.

La parte della procedura che consente all'endpoint del servizio di divenire compatibile ASP.NET AJAX è costituita dalla configurazione dell'endpoint affinché usi WebHttpBinding e dall'aggiunta del comportamento dell'endpoint <enableWebScript>. Dopo avere configurato l'endpoint, i passaggi per implementare e ospitare il servizio sono simili a quelli usati da qualsiasi servizio WCF. Per un esempio funzionante, vedere Servizio AJAX tramite HTTP POST.

Per altre informazioni su come configurare un endpoint AJAX ASP.NET senza usare la configurazione, vedere Procedura: Aggiungere un endpoint AJAX ASP.NET senza usare configuration.

Per creare un servizio WFC di base

  1. Definire un contratto di servizio WCF di base con un'interfaccia contrassegnata con l'attributo ServiceContractAttribute. Contrassegnare ogni operazione con OperationContractAttribute. Assicurarsi di impostare la proprietà 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…  
    
    }  
    
  2. Implementare il contratto di servizio ICalculator con CalculatorService.

    public class CalculatorService : ICalculator  
    {  
        public double Add(double n1, double n2)  
        {  
            return n1 + n2;  
        }
        // Other operations omitted…
    }
    
  3. Definire uno spazio dei nomi per le implementazioni ICalculator e CalculatorService eseguendo il wrapping di queste ultime in un blocco dello spazio dei nomi.

    namespace Microsoft.Ajax.Samples
    {  
        //Include the code for ICalculator and Calculator here.  
    }  
    

Per creare endpoint ASP.NET AJAX per il servizio.

  1. Creare una configurazione del comportamento e specificare il comportamento <enableWebScript> per ASP.NET endpoint abilitati per AJAX del servizio.

    <system.serviceModel>  
        <behaviors>  
            <endpointBehaviors>  
                <behavior name="AspNetAjaxBehavior">  
                    <enableWebScript />  
                </behavior>  
            </endpointBehaviors>  
        </behaviors>  
    </system.serviceModel>  
    
  2. Creare un endpoint per il servizio che utilizza WebHttpBinding e il comportamento ASP.NET AJAX definito nel passaggio precedente.

    <system.serviceModel>  
        <services>  
            <service name="Microsoft.Ajax.Samples.CalculatorService">  
                <endpoint address=""  
                    behaviorConfiguration="AspNetAjaxBehavior"
                    binding="webHttpBinding"  
                    contract="Microsoft.Ajax.Samples.ICalculator" />  
            </service>  
        </services>  
    </system.serviceModel>
    

Per ospitare il servizio in IIS

  1. Per ospitare il servizio in IIS, creare nell'applicazione un nuovo file denominato "service" con estensione svc. Modificare questo file aggiungendo le informazioni della direttiva @ServiceHost appropriate per il servizio. Ad esempio, il file del servizio per l'esempio CalculatorService contiene le informazioni seguenti:

    <%@ServiceHost
    language=c#
    Debug="true"
    Service="Microsoft.Ajax.Samples.CalculatorService"  
    %>  
    
  2. Per altre informazioni sull'hosting in IIS, vedere Procedura: Ospitare un servizio WCF in IIS.

Per chiamare il servizio

  1. L'endpoint è configurato in un indirizzo vuoto relativo al file con estensione svc, pertanto il servizio è ora disponibile e può essere richiamato inviando richieste a service.svc/<operazione>; ad esempio, service.svc/Add per l'operazione Add. È possibile utilizzarlo immettendo l'URL dell'endpoint nella raccolta degli script del controllo Script Manager ASP.NET AJAX. Per un esempio, vedere Servizio AJAX tramite HTTP POST.

Vedi anche