Размещение службы данных (службы WCF Data Services)
С помощью Службы WCF Data Services можно создать службу, предоставляющую данные в виде канала Протокол Open Data Protocol (OData). Эта служба данных определена в качестве класса, наследуемого от DataService<T>. Этот класс предоставляет функциональность, необходимую для обработки сообщений запроса, выполнения операций обновления в источнике данных и создания сообщений ответов, как предусмотрено в 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.
Обрабатывать исключения, сформированные службой данных.
Проверять параметры в строке запроса.
См. также
Основные понятия
Представление данных в виде службы OData (WCF Data Services)
Настройка службы данных (службы WCF Data Services)