Практическое руководство. Использование конфигурации для добавления конечной точки ASP.NET AJAX

Windows Communication Foundation (WCF) позволяет создать службу, которая делает конечную точку с поддержкой AJAX ASP.NET доступную для вызова из JavaScript на веб-сайте клиента. Чтобы создать такую конечную точку, можно использовать файл конфигурации, как и все остальные конечные точки Windows Communication Foundation (WCF) или использовать метод, который не требует элементов конфигурации. В этом разделе показано выполнение этой задачи с помощью файла конфигурации.

Часть процедуры, которая позволяет конечной точке службы стать ASP.NET AJAX, состоит из настройки конечной точки для использования WebHttpBinding и добавления< поведения конечной точки EnableWebScript>. После настройки конечной точки шаги по реализации и размещению службы похожи на те, которые используются любой службой WCF. Рабочий пример см. в разделе "Служба AJAX с помощью HTTP POST".

Дополнительные сведения о настройке конечной точки ASP.NET AJAX без использования конфигурации см. в статье "Практическое руководство. Добавление конечной точки ASP.NET AJAX без использования конфигурации".

Создание базовой службы WCF

  1. Определите базовый контракт службы WCF с интерфейсом, помеченным атрибутом ServiceContractAttribute . Пометьте каждую операцию атрибутом OperationContractAttribute. Не забудьте задать свойство 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. Реализуйте контракт службы ICalculator с помощью класса CalculatorService.

    public class CalculatorService : ICalculator  
    {  
        public double Add(double n1, double n2)  
        {  
            return n1 + n2;  
        }
        // Other operations omitted…
    }
    
  3. Определите пространство имен для реализаций ICalculator и CalculatorService, заключив их в блок пространства имен.

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

Создание конечной точки ASP.NET AJAX для службы

  1. Создайте конфигурацию поведения и укажите <поведение enableWebScript> для конечных точек с поддержкой AJAX ASP.NET служба.

    <system.serviceModel>  
        <behaviors>  
            <endpointBehaviors>  
                <behavior name="AspNetAjaxBehavior">  
                    <enableWebScript />  
                </behavior>  
            </endpointBehaviors>  
        </behaviors>  
    </system.serviceModel>  
    
  2. Создайте конечную точку для службы, использующую WebHttpBinding и поведение ASP.NET AJAX, определенное на предыдущем шаге.

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

Размещение службы в IIS

  1. Чтобы разместить службу в IIS, создайте в приложении файл с именем, соответствующем имени службы, и с расширением SVC. Измените этот файл, добавив соответствующие сведения о директиве @ServiceHost для службы. Например, файл службы для нашего примера CalculatorService содержит следующую информацию.

    <%@ServiceHost
    language=c#
    Debug="true"
    Service="Microsoft.Ajax.Samples.CalculatorService"  
    %>  
    
  2. Дополнительные сведения о размещении в IIS см. в статье "Практическое руководство. Размещение службы WCF в СЛУЖБАх IIS".

Вызов службы

  1. Конечная точка настроена по пустому адресу относительно SVC-файла, поэтому служба теперь доступна и может вызываться путем отправки запросов в service.svc/operation>, например service.svc/<Add для Add операции. Для этого укажите URL-адрес конечной точки в коллекции "Скрипты" в диспетчере скриптов ASP.NET AJAX. Пример см. в статье "Служба AJAX с помощью HTTP POST".

См. также