2012-03-26 13 views
0

IIS 7.5でホストされているWCFデータサービスがあります。このメソッドはJSONを返します。WCFデータサービス(またはIIS 7.5?)から返されるJSONの制限

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

(カタログ結果にはカウントフィールドとレコードの配列があり、各レコードには17個のフィールドがあります)。

私は3500レコード(または少なくとも3500と4000の間)を取得すると、サービスが爆発する(データが返されない)(私はエラーが何であるか知っていたが、愚かなファイアウォール(BlueCoatホワイトリストサービス)私がフィドラーの結果を見るのを妨げている、私はそれがうんざりすると思うが、それは起こっていることである)。

とにかく、私はページングされたレスポンスに行く必要があることを知っていますが、HTTPレスポンスの200万バイトを超えるWCF JSON(これはIISの制限です)多すぎる(

HTTP/1.1 200 OKのContent-Length:2081615のContent-Type: アプリケーション/ JSON;のcharset = UTF-8サーバー:マイクロソフト-IIS/7.5 X-Poweredのバイ:ASP。 NETアクセス制御 - 許可 - 原産地:*日付:2012年3月26日月 2012 16:47:05 GMT

{"count":3500、 "results":[{"bbox": "42.73043480000000、-70.7756345000 0000,42.74424550000000、-70.75736040000000" 、 "分類": "U"、 "classificationVal":3、 ...

答えて

0

あなたが到達している制限がありますという理由だけであなたが設定され、または構成しなかったかのあなたの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> 
上記のリンクから

Configuring Tracing

設定

関連する問題