Большие наборы данных, опубликованные с помощью OData WCF Data Services и Excel PowerPivot - PullRequest
3 голосов
/ 29 марта 2011

Я хочу опубликовать базу данных SQL Server, для целей тестирования AdventureWorksDW, пример базы данных хранилища данных, которую предоставляет Microsoft. Я создал новый проект «Служба данных WCF» в VS и создал Entity Framework Model для передачи его в общий параметр базового класса DataService. Я включил в модель некоторые измерения и таблицу фактов FactInternetSales. Кажется, что таблица FactInternetSales содержит слишком много данных (60398 записей) для доступа по умолчанию через OData. Когда я пытаюсь перебрать набор сущностей FactInternetSales из консольного приложения, я получаю System.Net.WebException с сообщением:

Базовое соединение было закрыто: соединение было неожиданно закрыто.

Если я ограничу количество строк для повторения, скажем 1000, у меня нет проблем.

С другой стороны, когда я пытаюсь загрузить данные из FactInternetSales в PowerPivot с помощью этой службы OData, я получаю следующее сообщение об ошибке:

Невозможно получить схему для потока данных FactInternetSales. Пожалуйста, убедитесь, что этот канал существует.

В методе InitializeService службы OData я установил config.SetEntitySetPageSize("*", 1000000), но, похоже, это не имеет никакого эффекта. Я также безуспешно добавил следующий код в web.config службы:

<system.web>
  ...
  <httpRuntime maxRequestLength="40960" />
</system.web>
...
<system.webServer>
  <security>
    <requestFiltering allowDoubleEscaping="true">
      <requestLimits maxAllowedContentLength="2147483647" />
    </requestFiltering>
  </security>
</system.webServer>

Полагаю, это вопрос конфигурации, чтобы разрешить поток данных через службу OData, но я не могу найти подходящее место, где мне следует изменить поведение по умолчанию.

...