我正在使用ABP Zero Core MVC模板(ASP.Net Core 2.x,MVC,jQuery)版本4.2.0。当我尝试使用AJAX将文件上传到控制器时,出现HTTP 404.13错误,表明超出了最大文件大小。 Here和here我找到了类似问题的解决方案,并尝试如此解决,但是它们要么不适合所使用的模式,要么我做错了。
如何在“零核心”中增加最大上传文件大小?
// *.Web.Host\Startup\Program.cs
// *.Web.Mvc\Startup\Program.cs
public static IWebHostBuilder CreateWebHostBuilder(string[] args) {
return WebHost.CreateDefaultBuilder(args)
.UseKestrel(options => {
// no effect... I can only small files uploaded
options.Limits.MaxRequestBodySize = 1024 * 1024 * 1024;
})
.UseStartup<Startup>();
}
答案 0 :(得分:1)
您是否尝试过用action
装饰控制器[RequestSizeLimit(YOUR_MAX_TOTAL_UPLOAD_SIZE)]
以及Startup.cs
中的更改?
services.Configure<FormOptions>(opt =>
{
opt.MultipartBodyLengthLimit = YOUR_MAX_TOTAL_UPLOAD_SIZE;
});
btw,如果您打算将应用程序托管在IIS上,则可以将web.config
文件添加到项目中并在其中配置upload size
,而不是在IIS服务器上进行配置。
编辑:作为@XelaNimed的注释,在编辑web.config
的同时添加startup.cs
文件,使代码正常工作。
<configuration>
<location path="." inheritInChildApplications="false">
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout">
<environmentVariables />
</aspNetCore>
</system.webServer>
</location>
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="YOUR_BYTES" />
</requestFiltering>
</security>
</system.webServer>
</configuration>
答案 1 :(得分:0)
尝试一下
Startup.cs
public void ConfigureServices(IServiceCollection services)
{
//add to beginning of the method...
services.Configure<FormOptions>(x =>
{
x.ValueLengthLimit = int.MaxValue;
x.MultipartBodyLengthLimit = int.MaxValue;
x.MultipartHeadersLengthLimit = int.MaxValue;
});
}