如何增加.net core中的请求限制?

时间:2018-10-27 05:55:44

标签: asp.net-web-api asp.net-core visual-studio-2017

我试图在.net核心网络api中上传一些大于〜30Mb限制的文件。我尝试遵循我发现的所有建议,所有建议均在下面列出。无论我尝试了什么,我都会返回404.13错误“请求超出请求内容长度”。我正在Windows 10上的Visual Studio中运行,有人知道如何使它正常工作吗?我猜想在IIS上托管时情况可能有所不同,但我想首先在我的计算机上使它工作。

public static IWebHost BuildWebHost(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
            .UseKestrel(o => o.Limits.MaxRequestBodySize = null)
            .UseStartup<Startup>()
            .Build();

下面的这个试图获取IHttpMaxRequestBodySizeFeature时返回null

appBuilder.ServerFeatures.Get<IHttpMaxRequestBodySizeFeature>.MaxRequestBodySize = null;

将其添加到我的app.config:

    <?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <runtime>
    <gcServer enabled="true"/>
  </runtime>
  <system.web>
    <httpRuntime maxRequestLength="2147483647"/>
  </system.web>
  <system.webServer>

    <security>
      <requestFiltering>
        <requestLimits maxAllowedContentLength="2147483647"/>
      </requestFiltering>
    </security>
  </system.webServer>
</configuration>

向我的控制器添加属性:

[HttpPost]
    [DisableRequestSizeLimit]
    //[RequestSizeLimit(100_000_000)]
    public IActionResult Document(IList<IFormFile> files)

1 个答案:

答案 0 :(得分:1)

要回答我自己的问题,原来我应该创建一个Web.config文件,然后将放入app.config文件中的内容放入其中。