Размещение службы данных (службы WCF Data Services)
С помощью Службы WCF Data Services можно создать службу, предоставляющую данные в виде канала Протокол Open Data Protocol (OData) . Эта служба данных определена в качестве класса, наследуемого от DataService. Этот класс обеспечивает функциональность, необходимую для обработки сообщений запросов, выполнения обновлений источников данных и создания ответных сообщений, необходимых службам OData . Однако служба данных не привязывается к сетевому сокету и не может его прослушивать в ожидании входящих HTTP-запросов. Реализацию этой обязательной функциональности служба данных возлагает на размещающий компонент.
Узел службы данных выполняет следующие задачи от имени источника данных:
Прослушивает запросы и перенаправляет их службе данных.
Создает экземпляр службы данных для каждого запроса.
Запрашивает обработку входящего запроса службой данных.
Отправляет ответ от имени службы данных.
Для упрощения размещения службы данных службы Службы WCF Data Services интегрируются с Windows Communication Foundation (WCF). Служба данных обеспечивает реализацию по умолчанию WCF, которая используется как узел службы данных в приложении ASP.NET. Следовательно, службу данных можно разместить одним из следующих способов:
В приложении ASP.NET.
В управляемом приложении, которое поддерживает резидентные службы WCF.
В других специализированных узлах службы данных.
Размещение службы данных в приложении ASP.NET
При использовании диалогового окна Добавить новый элемент в среде Visual Studio для определения службы данных в приложении ASP.NET среда создает в проекте два новых файла. Первый файл имеет расширение .svc
и определяет для среды выполнения WCF способ создания экземпляра службы данных. Ниже приведен пример этого файла для образца службы данных Northwind, созданного при изучении краткого руководства:
<%@ ServiceHost Language="C#"
Factory="System.Data.Services.DataServiceHostFactory,
System.Data.Services, Version=4.0.0.0,
Culture=neutral, PublicKeyToken=b77a5c561934e089"
Service="NorthwindService.Northwind" %>
Эта директива используется для инструкции приложения для создания узла службы для именованного класса службы данных путем использования класса DataServiceHostFactory.
Страница с выделенным кодом для файла .svc
содержит класс, являющийся реализацией самой службы данных, определенной следующим образом для образца службы данных Northwind:
Public Class Northwind
Inherits DataService(Of NorthwindEntities)
public class Northwind : DataService<NorthwindEntities>
Поскольку служба данных работает аналогично службе WCF, она интегрируется с ASP.NET и соответствует модели веб-программирования WCF. Дополнительные сведения см. в разделах WCF Services and ASP.NET и Web Programming Model.
Резидентные службы WCF
Реализация интеграции с WCF позволяет службам Службы WCF Data Services резидентно размещать службы данных в качестве службы WCF. Служба может быть резидентно размещена в любом приложении .NET Framework, например в консольном приложении. Класс DataServiceHost, наследуемый от WebServiceHost, используется для создания экземпляров службы данных по определенному адресу.
Резидентное размещение можно использовать для разработки и тестирования, поскольку оно упрощает развертывание и диагностику службы. Однако этот тип размещения не обеспечивает дополнительные функции размещения и управления, обеспечиваемые ASP.NET или службами IIS. Дополнительные сведения см. в разделе Hosting in a Managed Application.
Определение специализированных узлов служб данных
В случае если ограничения, связанные с реализацией узла WCF, неприемлемы, для службы данных можно также определить настраиваемый узел. Любой класс, реализующий интерфейс IDataServiceHost, можно использовать в качестве сетевого узла для службы данных. Настраиваемый узел должен реализовать интерфейс IDataServiceHost и поддерживать следующие основные функции узла службы данных:
Обеспечивать службу данных корневым путем службы.
Обрабатывать данные заголовков запроса и ответа в соответствующей реализации элемента IDataServiceHost.
Обрабатывать исключения, сформированные службой данных.
Проверять параметры в строке запроса.
См. также
Основные понятия
Представление данных в виде службы (службы WCF Data Services)
Настройка службы данных (службы WCF Data Services)