Я хочу опубликовать базу данных 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, но я не могу найти подходящее место, где мне следует изменить поведение по умолчанию.