Ограничения на JSON, возвращаемые службами данных WCF (или IIS 7.5?) - PullRequest
0 голосов
/ 26 марта 2012

У меня есть служба данных WCF, размещенная в IIS 7.5.Метод возвращает JSON.

    [WebGet(ResponseFormat = WebMessageFormat.Json)]
    CatalogResults SearchBoxADO(string requestBox);

(в каталоге результатов есть поле подсчета, а затем массив записей, каждая запись имеет 17 полей).

Когда я получаю более 3500 записей (или припо крайней мере, между 3500 и 4000) служба взрывается (данные не возвращаются) (хотелось бы знать, в чем ошибка, но наш глупый брандмауэр (служба белого списка BlueCoat) срабатывает и не дает мне увидеть результат в Fiddler, я знаю, что это звучитстранно, но это то, что происходит).

В любом случае, я знаю, что мне нужно перейти к постраничному ответу, но я хотел знать, какие существуют ограничения для WCF JSON (или это ограничение IIS) это говорит о том, что более 2 миллионов байтов в HTTP-ответе - это слишком много (

HTTP / 1.1 200 OK Content-Length: 2081615 Content-Type: application / json; charset = utf-8 Server:Microsoft-IIS / 7.5 X-Powered-By: ASP.NET Access-Control-Allow-Origin: * Дата: Пн, 26 марта 2012 16:47:05 GMT

{"count": 3500, "результаты ": [{" BBOX ":" 42.73043480000000, -70.77563450000000,42.74424550000000, -70,75736040000000 "," классификация ":" U ", "ificationVal": 3, ...

1 Ответ

0 голосов
/ 31 марта 2012

Ограничение, которого вы достигнете, может быть связано только с тем, как вы настроили или не настроили службу WCF. Чтобы выяснить, в чем проблема, вы можете настроить трассировку на вашем сервисе.

Настройка трассировки

Конфигурация по ссылке выше

<configuration>
  <system.diagnostics>
    <sources>
      <source name="System.ServiceModel"
              switchValue="Information, ActivityTracing"
              propagateActivity="true">
        <listeners>
          <add name="xml" />
        </listeners>
      </source>
      <source name="CardSpace">
        <listeners>
          <add name="xml" />
        </listeners>
      </source>
      <source name="System.IO.Log">
        <listeners>
          <add name="xml" />
        </listeners>
      </source>
      <source name="System.Runtime.Serialization">
        <listeners>
          <add name="xml" />
        </listeners>
      </source>
      <source name="System.IdentityModel">
        <listeners>
          <add name="xml" />
        </listeners>
      </source>
    </sources>

    <sharedListeners>
      <add name="xml"
           type="System.Diagnostics.XmlWriterTraceListener"
           initializeData="c:\log\Traces.svclog" />
    </sharedListeners>
  </system.diagnostics>
</configuration>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...