1

REST Web サービスから大きなデータ (約 600kb) を応答として送信しています。応答を得るのに時間がかかりすぎるため、圧縮しようとしています。

私の Web サイトには、汎用ハンドラーがあります。このハンドラーに対して、私は自分のページからリクエストを行っています:

$.getJSON('Handler.ashx', data, function (fileBytesArray) {
   // Process the data
})
.done(function () { console.log("second success"); })
.fail(function () { console.log("error"); })
.always(function () { console.log("complete"); });

ハンドラーはリクエストを受け取り、REST サービスに転送します。ハンドラーのコード:

public void ProcessRequest(HttpContext context)
{
   HttpWebRequest req = (HttpWebRequest)WebRequest.Create(new Uri("http://localhost/MyRestWebService/MyRestWebService.svc/DownloadFile"));
    req.ContentType = "application/json; charset=utf-8";
    req.Timeout = 60000;

    using (WebResponse resp = req.GetResponse()) 
    { 
        StreamReader reader = new StreamReader(resp.GetResponseStream());
        string responceFromService = reader.ReadToEnd();
        context.Response.ContentType = "application/json; charset=utf-8";
        context.Response.Write(responceFromService);
    }

私のサービス(DownloadFile()メソッド内)では、ファイル全体を読み取ります。次に、NewtonSoft.Jsondllを使用してシリアル化し、ハンドラーに返します。

Web サイトと REST サービスの両方が同じサーバー上にあります。applicationHost.configそのサーバー上のファイルを変更して変更しました:

<httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files">
<scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll"/>
<dynamicTypes>
  <add mimeType="text/*" enabled="true"/>
  <add mimeType="message/*" enabled="true"/>
  <add mimeType="application/javascript" enabled="true"/>
  <add mimeType="*/*" enabled="false"/>
  <add mimeType="application/x-javascript" enabled="true"/>
  <add mimeType="application/json; charset=utf-8" enabled="true"/>
</dynamicTypes>
<staticTypes>
  <add mimeType="text/*" enabled="true"/>
  <add mimeType="message/*" enabled="true"/>
  <add mimeType="application/javascript" enabled="true"/>
  <add mimeType="*/*" enabled="false"/>
  <add mimeType="application/x-javascript" enabled="true"/>
  <add mimeType="application/json; charset=utf-8" enabled="true"/>
</staticTypes>
</httpCompression>

に何も入っfirebugていないことに気付きました。見逃したものはありますか?Content EncodingResponse header

4

0 に答える 0