Практическое руководство. Использование конфигурации для добавления конечной точки 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
Определите базовый контракт службы 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… }
Реализуйте контракт службы
ICalculator
с помощью классаCalculatorService
.public class CalculatorService : ICalculator { public double Add(double n1, double n2) { return n1 + n2; } // Other operations omitted… }
Определите пространство имен для реализаций
ICalculator
иCalculatorService
, заключив их в блок пространства имен.namespace Microsoft.Ajax.Samples { //Include the code for ICalculator and Calculator here. }
Создание конечной точки ASP.NET AJAX для службы
Создайте конфигурацию поведения и укажите <поведение enableWebScript> для конечных точек с поддержкой AJAX ASP.NET служба.
<system.serviceModel> <behaviors> <endpointBehaviors> <behavior name="AspNetAjaxBehavior"> <enableWebScript /> </behavior> </endpointBehaviors> </behaviors> </system.serviceModel>
Создайте конечную точку для службы, использующую 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
Чтобы разместить службу в IIS, создайте в приложении файл с именем, соответствующем имени службы, и с расширением SVC. Измените этот файл, добавив соответствующие сведения о директиве @ServiceHost для службы. Например, файл службы для нашего примера
CalculatorService
содержит следующую информацию.<%@ServiceHost language=c# Debug="true" Service="Microsoft.Ajax.Samples.CalculatorService" %>
Дополнительные сведения о размещении в IIS см. в статье "Практическое руководство. Размещение службы WCF в СЛУЖБАх IIS".
Вызов службы
- Конечная точка настроена по пустому адресу относительно SVC-файла, поэтому служба теперь доступна и может вызываться путем отправки запросов в service.svc/operation>, например service.svc/<Add для
Add
операции. Для этого укажите URL-адрес конечной точки в коллекции "Скрипты" в диспетчере скриптов ASP.NET AJAX. Пример см. в статье "Служба AJAX с помощью HTTP POST".