15

イベントのリストを返す Web API メソッドがあります。

public HttpResponseMessage GetEvents()
{
...
}

My Service は、DataContractSerializer (xml の場合) と DataContractJsonSerializer (JSON の場合) を使用して、Xml と JSON の両方の応答をサポートします。

応答サイズは 30MB 程度になる場合があります。

IIS でホストされている ASP.NET Web API で許容される既定の応答サイズはどれくらいですか?

デフォルト設定を変更するには?

このような大きなデータを返す際のベスト プラクティスは何ですか (それほど大きくはありませんが)。

応答を圧縮する必要がありますか?

また、1 秒あたり 1 つのリクエストを受け取ることもあります。

ありがとう

4

2 に答える 2

14

あなたの問題についてはよくわかりません。Responseサイズを制限していないため。Content-Length応答ヘッダーにパラメーターを追加することで、応答サイズを制限できます。したがって、次の2つの問題があると思います。

1. リクエストの制限: これを解決するには、リクエスト サイズを大きくして、大きなサイズのレスポンスを受信できるようにする必要があります。リクエストサイズを増やすには、次のように入力web.configします。

<system.web>
<httpRuntime maxRequestLength="2147483647" />

2. レスポンス バッファ サイズは制限の例外です:

MSDNのリンクをたどってください。

編集:

IIS でホストされている ASP.NET Web API で許容される既定の応答サイズはどれくらいですか?

応答サイズは、入れたメッセージのサイズによって自動的にサイズを取得します。また、応答サイズには制限があります。HttpReponseMessage実際には、私が上に投稿したのと同様の応答です。

このような大きなデータを返す際のベスト プラクティスは何ですか (それほど大きくはありませんが)。

リンクを取る必要があります。データを処理するためのベスト プラクティスは、バイナリ データに変換し、それを小さなパーツとして転送することです。

応答を圧縮する必要がありますか?

コンテキストによって異なります。IIS 7.0 では既に zip 応答を構成できますが、クライアントのコードで既に zip 応答をサポートしているかどうかに注意してください。

于 2013-05-08T09:09:11.707 に答える