Размещение службы данных (службы 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)

Другие ресурсы

Служба данных (WCF Data Services)