gpt4 book ai didi

azure - 使用 Azure 应用服务更改 ASP.NET Core 3.1 应用程序的文件上传限制

转载 作者:行者123 更新时间:2023-12-02 23:35:55 25 4
gpt4 key购买 nike

我有一个使用 ASP.NET Core 3.1 构建的解决方案。该管道旨在发布到 Azure 中的应用服务。

问题是,我们无法上传大于 28MB 的文件。我们收到 413 错误 - 文件太大。这似乎是 IIS 问题,但 Azure 应用服务不使用 IIS。

浏览器返回的具体错误是这样的:

Request URL: https:xxxxxxxx
Request Method: POST
Status Code: 413 Request Entity Too Large
Remote Address: xx.xx.x.x
Referrer Policy: strict-origin-when-cross-origin
Content-Length: 67
Content-Type: text/html
Date: Sat, 23 Apr 2022 16:15:06 GMT
Server: Microsoft-IIS/10.0
Set-Cookie:
Set-Cookie:
X-Powered-By: ASP.NET
Accept: */*
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.9
Connection: keep-alive
Content-Length: 31438702

我们解决该问题的步骤包括将 web.config 文件添加到我们的 wwwroot 目录,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="52428800" />
</requestFiltering>
</security>
</system.webServer>
</configuration>

然后我们将以下代码添加到ConfigureServices中的启动文件中:

   services.Configure<IISServerOptions>(options =>
{
options.MaxRequestBodySize = 104857600;
});

services.Configure<FormOptions>(options =>
{
// Set the limit to 100 MB
options.MultipartBodyLengthLimit = 104857600;
options.ValueLengthLimit = 104857600;
options.MultipartHeadersLengthLimit = 104857600;
});

这些都没有改变结果。我们还发现一个网站建议将以下代码添加到 Startup 中的Configure() 中。但这段代码破坏了其他例程,所以我们把它去掉了。

   //app.Use(async (context, next) =>
//{
// context.Features.Get<IHttpMaxRequestBodySizeFeature>().MaxRequestBodySize = 104857600;
// await next.Invoke();
//});

我们的最后一步是请求 Microsoft 的支持。他们的回复确认 Azure 应用服务不使用 IIS,并且此代码应该可以工作。他们还审查了我们的 Azure 配置,并报告不需要进行任何更改。

那么,我做错了什么、遗漏了什么、错过了什么?

最佳答案

这就是我们在 NET6 中的设置方式,在 3.1 中应该非常相似:

progam.cs

builder.WebHost.ConfigureKestrel(options =>
{
options.Limits.MaxRequestBodySize = 256_000_000;
})
.UseIISIntegration()

web.config

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="256000000" />
</requestFiltering>
</security>
</system.webServer>
</configuration>

关于azure - 使用 Azure 应用服务更改 ASP.NET Core 3.1 应用程序的文件上传限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71981656/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com