Sdílet prostřednictvím


Postupy: Přidání koncového bodu ASP.NET AJAX bez použití konfiguračního souboru

Windows Communication Foundation (WCF) umožňuje vytvořit službu, která zveřejňuje koncový bod s podporou jazyka ASP.NET AJAX, který lze volat z JavaScriptu na klientském webu. Pokud chcete takový koncový bod vytvořit, můžete buď použít konfigurační soubor, stejně jako u všech ostatních koncových bodů WCF, nebo použít metodu, která nevyžaduje žádné elementy konfigurace. Toto téma ukazuje druhý přístup.

Pokud chcete vytvářet služby s koncovými body ASP.NET AJAX bez konfigurace, musí být služby hostované službou Internetová informační služba (IIS). Chcete-li aktivovat koncový bod ASP.NET AJAX pomocí tohoto přístupu, zadejte WebScriptServiceHostFactory jako parametr Factory v @ServiceHost direktivě v souboru .svc. Tato vlastní továrna je komponenta, která automaticky nakonfiguruje koncový bod ASP.NET AJAX, aby se mohl volat z JavaScriptu na klientském webu.

Pracovní příklad najdete ve službě AJAX bez konfigurace.

Přehled postupu konfigurace koncového bodu ASP.NET AJAX pomocí prvků konfigurace najdete v tématu Postupy: Použití konfigurace k přidání koncového bodu ASP.NET AJAX.

Vytvoření základní služby WCF

  1. Definujte základní kontrakt služby WCF s rozhraním označeným atributem ServiceContractAttribute . Označte každou operaci pomocí znaku OperationContractAttribute. Nezapomeňte nastavit Namespace vlastnost.

    [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. Implementace kontraktu ICalculator služby s .CalculatorService

    public class CalculatorService : ICalculator  
    {  
        public double Add(double n1, double n2)  
        {  
            return n1 + n2;  
        }  
    
    //Other operations omitted…  
    
  3. Definujte obor názvů pro implementaci ICalculator a CalculatorService zabalte je do bloku oboru názvů.

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

Hostování služby v Internetová informační služba bez konfigurace

  1. Vytvořte v aplikaci nový soubor s příponou .svc. Upravte tento soubor přidáním příslušných informací o direktivě @ServiceHost pro službu. Určete, že WebScriptServiceHostFactory se má použít v direktivě @ServiceHost k automatické konfiguraci koncového bodu ASP.NET AJAX.

    <%@ServiceHost
        language=c#
        Debug="true"
        Service="Microsoft.Ajax.Samples.CalculatorService"  
        Factory=System.ServiceModel.Activation.WebScriptServiceHostFactory  
    %>  
    
  2. Sestavte službu a zavolejte ji z klienta. Internetová informační služba (IIS) aktivuje službu při zavolání. Další informace o hostování ve službě IIS naleznete v tématu Postupy: Hostování služby WCF ve službě IIS.

Volání služby

  1. Koncový bod je nakonfigurovaný na prázdné adrese vzhledem k souboru .svc, takže služba je nyní dostupná a může být vyvolána odesláním požadavků na service.svc/<operation> – například service.svc/Add pro Add operaci. Můžete ho použít tak, že zadáte adresu URL služby do kolekce Skripty ovládacího prvku ASP.NET SPRÁVCE skriptů AJAX. Příklad najdete ve službě AJAX bez konfigurace.

Příklad

Automaticky nakonfigurovaný koncový bod se vytvoří na prázdné adrese vzhledem k základní adrese URL. Konfigurační soubor lze také přidat a použít s tímto přístupem. Pokud konfigurační soubor obsahuje definice koncových bodů, tyto koncové body se přidají do automaticky nakonfigurovaného koncového bodu.

Například service.svc používá WebScriptServiceHostFactory a adresář služby obsahuje soubor Web.config, který definuje koncový bod pro stejnou službu pomocí BasicHttpBinding relativní adresy soap. V tomto případě služba obsahuje dva koncové body: jeden v service.svc (který reaguje na požadavky AJAX ASP.NET) a druhý v service.svc/soap (který reaguje na požadavky SOAP).

Pokud konfigurační soubor definuje koncový bod na prázdné relativní adrese a WebScriptServiceHostFactory použije se, vyvolá se výjimka a služba se nespustí.

Konfiguraci nelze použít k úpravě nastavení u automaticky nakonfigurovaného koncového bodu. Pokud je nutné upravit jakékoli nastavení (například kvótu pro čtení), nesmíte použít přístup bez konfigurace odebráním WebScriptServiceHostFactory ze souboru .svc a vytvořením položky konfigurace pro koncový bod.

Pokud vaše služba vyžaduje režim kompatibility ASP.NET – například pokud používá HttpContext mechanismy autorizace třídy nebo ASP.NET – konfigurační soubor je stále nutný k zapnutí tohoto režimu. Požadovaný element konfigurace je <serviceHostingEnvironment> element, který musí být přidán následujícím způsobem.

<system.serviceModel>

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

Další informace najdete v tématu Služby WCF a ASP.NET .

Třída WebScriptServiceHostFactory je odvozená třída ServiceHostFactory. Podrobné vysvětlení mechanismu hostitelské továrny služby najdete v tématu Rozšíření hostování pomocí ServiceHostFactory .

Viz také