0

我在 Azure 中托管了一个 ASP.NET Core 2.1 WebAPI 项目,作为高级层中的 Windows 应用服务。

此 API 有一个端点,它接受带有 JSON 有效负载 (Content-Tye=application/json) 的 POST 请求。

当我调用此 API(从 Postman 或使用 HttpClient 从 C# 控制台应用程序)并传递 100KB 的 JSON 有效负载时,它会给出错误“现有连接被远程主机强制关闭”。但是,当我使用较小的 JSON 有效负载(如 20KB)调用相同的 API 时,它就成功了。

那么 Azure WebApp 中是否有任何设置可以增加请求长度?

4

1 回答 1

0

从 ASP.NET Core 2.0.0 开始,Kestrel 和 HttpSys 都将强制执行 30MB (~28.6 MiB) 的最大请求正文大小限制。

如果请求正文大小超过配置的最大请求正文大小限制,则对 Request.Body.ReadAsync 的调用将引发 IOException。如果此异常未被捕获,Kestrel 将响应 413 Payload Too Large 响应,而 HttpSys 将响应通用 500 Internal Server Error 响应。

此限制可以全局更改,也可以基于每个请求进行更改,并且对于在正常 web.config 限制仍然适用的 IIS 后面运行的 Kestrel 禁用。

来自https://github.com/aspnet/Announcements/issues/267

于 2019-03-07T07:41:24.653 回答