HTTP错误404.13 - 未找到请求过滤模块是 配置为拒绝超过请求内容长度的请求。
验证 configuration/system.webServer/security/requestFiltering/requestLimits@maxAllowedContentLength 在applicationhost.config或web.config文件中进行设置。
我不知道我可以在哪里配置,在asp.net核心2中有更改使用appsettings.json。
即使尝试这样做,但它不起作用。
services.Configure<FormOptions>(options =>
{
options.MultipartBodyLengthLimit = 300_000_000;
});
答案 0 :(得分:21)
如果您使用IIS,则需要在asp.net core 2.0 app中添加web.config。
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<security>
<requestFiltering>
<!-- This will handle requests up to 700MB (CD700) -->
<requestLimits maxAllowedContentLength="737280000" />
</requestFiltering>
</security>
</system.webServer>
</configuration>
如果您不使用IIS,则可以在控制器中使用[RequestSizeLimit(long.MaxValue)]
或[DisableRequestSizeLimit]
属性。
此外,您可以在Program.cs中添加全局设置:
.UseKestrel(o => { o.Limits.MaxRequestBodySize = null; })
有关详细信息,请参阅此https://github.com/aspnet/Announcements/issues/267
答案 1 :(得分:0)
对于我的Core 2.2 MVC项目,将[RequestSizeLimit(long.MaxValue)]属性和上面的web.config组合起来不起作用。单独使用web.config就可以了-只是不要使用该属性。应用程序崩溃并意外关闭了浏览器。另外,由于我的最大请求大小为200Mb,因此,如果有可能生成404.13(要求过大)结果,则您的常规状态代码处理将对404.13 不起作用(请参见Startup.cs, Configure(),
app.UseStatusCodePagesWithReExecute("/Error/Error", "?statusCode={0}");
行)。但是,状态代码页处理适用于其他代码。我必须将自定义错误状态处理插入到web.config文件中,以使用优美的用户友好视图来处理404.13。请注意,针对404.13的“删除”似乎也会删除状态码404 ...,那么您的错误控制器方法将无法处理404。下面的web.config中有两个自定义错误处理程序-一个用于404.13,另一个用于以修复404。希望这可以帮助某人:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<security>
<requestFiltering>
<!-- This will handle requests up to 201Mb -->
<requestLimits maxAllowedContentLength="210763776" />
</requestFiltering>
</security>
<httpErrors errorMode="Custom" existingResponse="Replace">
<remove statusCode="404" subStatusCode="13" />
<remove statusCode="404" />
<error statusCode="404"
subStatusCode="13"
prefixLanguageFilePath=""
path="/Error/UploadTooLarge"
responseMode="Redirect" />
<error statusCode="404"
prefixLanguageFilePath=""
path="/Error/PageNotFound"
responseMode="Redirect" />
</httpErrors>
</system.webServer>
</configuration>
最终结果是所有正常状态代码都由错误/错误处理,并且404.13和404状态代码具有自定义处理功能……并且周围都有漂亮的视图!
答案 2 :(得分:0)
内容长度的默认值 30000000 字节,对于某些文件上传功能来说,这还不够。
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="500000000"></requestLimits>
</requestFiltering>
</security>
</system.webServer>