Dela via


Gör så här: Lägga till en ASP.NET AJAX-slutpunkt utan att använda konfiguration

Med Windows Communication Foundation (WCF) kan du skapa en tjänst som exponerar en ASP.NET AJAX-aktiverad slutpunkt som kan anropas från JavaScript på en klientwebbplats. Om du vill skapa en sådan slutpunkt kan du antingen använda en konfigurationsfil, som med alla andra WCF-slutpunkter, eller använda en metod som inte kräver några konfigurationselement. Det här avsnittet visar den andra metoden.

Om du vill skapa tjänster med ASP.NET AJAX-slutpunkter utan konfiguration måste tjänsterna hanteras av Internet Information Services (IIS). Om du vill aktivera en ASP.NET AJAX-slutpunkt med den här metoden anger du WebScriptServiceHostFactory som parametern Factory i @ServiceHost-direktivet i .svc-filen. Den här anpassade fabriken är den komponent som automatiskt konfigurerar en ASP.NET AJAX-slutpunkt så att den kan anropas från JavaScript på en klientwebbplats.

Ett fungerande exempel finns i AJAX-tjänsten utan konfiguration.

En översikt över hur du konfigurerar en ASP.NET AJAX-slutpunkt med hjälp av konfigurationselement finns i Så här använder du konfiguration för att lägga till en ASP.NET AJAX-slutpunkt.

Skapa en grundläggande WCF-tjänst

  1. Definiera ett grundläggande WCF-tjänstkontrakt med ett gränssnitt markerat med attributet ServiceContractAttribute . Markera varje åtgärd med OperationContractAttribute. Se till att ange egenskapen 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. Implementera tjänstkontraktet ICalculator med en CalculatorService.

    public class CalculatorService : ICalculator  
    {  
        public double Add(double n1, double n2)  
        {  
            return n1 + n2;  
        }  
    
    //Other operations omitted…  
    
  3. Definiera ett namnområde för implementeringarna ICalculator och CalculatorService genom att omsluta dem i ett namnområdesblock.

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

Värd för tjänsten i Internet Information Services utan konfiguration

  1. Skapa en ny fil med namnet service med tillägget .svc i programmet. Redigera den här filen genom att lägga till lämplig information om @ServiceHost direktiv för tjänsten. Ange att WebScriptServiceHostFactory ska användas i @ServiceHost-direktivet för att automatiskt konfigurera en ASP.NET AJAX-slutpunkt.

    <%@ServiceHost
        language=c#
        Debug="true"
        Service="Microsoft.Ajax.Samples.CalculatorService"  
        Factory=System.ServiceModel.Activation.WebScriptServiceHostFactory  
    %>  
    
  2. Skapa tjänsten och anropa den från klienten. IIS (Internet Information Services) aktiverar tjänsten när den anropas. Mer information om värdtjänster i IIS finns i Så här: Värd för en WCF-tjänst i IIS.

Så här anropar du tjänsten

  1. Slutpunkten konfigureras på en tom adress i förhållande till .svc-filen, så tjänsten är nu tillgänglig och kan anropas genom att skicka begäranden till service.svc/<operation> , till exempel service.svc/Add för Add åtgärden. Du kan använda den genom att ange tjänst-URL:en i skriptsamlingen för kontrollen ASP.NET AJAX Script Manager. Ett exempel finns i AJAX-tjänsten utan konfiguration.

Exempel

Den automatiskt konfigurerade slutpunkten skapas på en tom adress i förhållande till bas-URL:en. En konfigurationsfil kan också läggas till och användas med den här metoden. Om konfigurationsfilen innehåller slutpunktsdefinitioner läggs dessa slutpunkter till i den automatiskt konfigurerade slutpunkten.

Till exempel använder WebScriptServiceHostFactory service.svc och tjänstkatalogen innehåller en Web.config-fil som definierar en slutpunkt för samma tjänst med hjälp av BasicHttpBinding den relativa "soap"-adressen. I det här fallet innehåller tjänsten två slutpunkter: en på service.svc (som svarar på ASP.NET AJAX-begäranden) och en annan på service.svc/soap (som svarar på SOAP-begäranden).

Om konfigurationsfilen definierar en slutpunkt på en tom relativ adress och WebScriptServiceHostFactory används genereras ett undantag och tjänsten kan inte startas.

Du kan inte använda konfigurationen för att ändra inställningarna på den automatiskt konfigurerade slutpunkten. Om någon inställning (till exempel en läsarkvot) måste ändras får du inte använda den konfigurationsfria metoden genom att ta bort WebScriptServiceHostFactory från .svc-filen och skapa en konfigurationspost för slutpunkten.

Om tjänsten kräver ASP.NET kompatibilitetsläge , till exempel om den HttpContext använder klassen eller ASP.NET auktoriseringsmekanismer, krävs fortfarande en konfigurationsfil för att aktivera det här läget. Konfigurationselementet som krävs är elementet <serviceHostingEnvironment> , som måste läggas till på följande sätt.

<system.serviceModel>

<serviceHostingEnvironment aspNetCompatibilityEnabled="true" /> </system.serviceModel>

Mer information finns i avsnittet om WCF-tjänster och ASP.NET .

Klassen WebScriptServiceHostFactory är en härledd klass av ServiceHostFactory. En detaljerad förklaring av mekanismen för tjänstvärdfabriken finns i avsnittet Utöka värd med hjälp av ServiceHostFactory .

Se även