POSTメソッドを持つWeb APIコントローラが次のように用意されています。POSTメソッドにパラメータとして渡すことができるオブジェクトの最大サイズ
public class MyController : ApiController
{
// POST: api/Scoring
public HttpResponseMessage Post([FromBody]MyClass request)
{
// some processing of request object
return Request.CreateResponse(HttpStatusCode.OK, someResponseObject);
}
....
}
これは
HttpClient httpClient = new HttpClient();
httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
httpClient.BaseAddress = new Uri("http://localhost");
MyClass requestClient = new MyClass();
var task = httpClient.PostAsJsonAsync("api/my", requestClient)
を次のようにMyObjectにオブジェクトのサイズがコントローラのPOSTメソッドのパラメータに渡されたときに素晴らしい作品のHTTPClientによって消費されるサイズが小さいです。しかし、このオブジェクトのサイズが大きい場合、私はPOSTメソッドのパラメータで要求オブジェクトのnullを取得します。 1つのケースでは、クライアントサイドリクエストから渡されたrequestClientオブジェクトのサイズは〜5 MBであり、POSTメソッドでは、リクエストオブジェクトをnullとして取得します。 Web APIはIISでホストされていることに注意してください。許容サイズを変更する必要がある設定はありますか?
更新: 次のweb.configを追加すると、POSTメソッドのパラメータにヌルオブジェクトの問題が解決されました。
のhttpRuntime maxRequestLength = "2147483647" />
私はその後〜50メガバイトにrequestClientオブジェクトのサイズを増加させました。 POSTメソッドのコードが決して命中することはありません。クライアント側では、PostAsJsonAsynを呼び出すと、次のメッセージでSystem.Net.HttpRequestExceptionが発生します。
応答ステータスコードが成功を示していない:404(見つかりません)。
ここでmaxRequestLengthを変更しても影響はありません。 OPから
の可能性のある重複(HTTP [ポスト要求のサイズの上限は?] ://stackoverflow.com/questions/2364840/what-is-the-size-limit-of-a-post-request) – ssbb
@ssbbただし、このリンクはAPIの問題を解決する方法を教えてくれませんIISでホストされている –