abpvnext配置上传文件大小
如果不做任何限制,在前端应用vue实现上传文件时,比如大于100M时就会出现请求文件过大的问题,解决方法可试如下。
在发布的文件的webconfig中配置请求大小
<?xml version="1.0" encoding="utf-8"?> <configuration> <location path="." inheritInChildApplications="false"> <system.webServer> <security> <requestFiltering> <requestLimits maxAllowedContentLength="1073741824" /> </requestFiltering> </security> <handlers> <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" /> </handlers> <aspNetCore requestTimeout="00:20:00" processPath="dotnet" arguments=".\Win.Test.HttpApi.Host.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="OutOfProcess" /> </system.webServer> </location> </configuration>
复制这一段代码
<security> <requestFiltering> <requestLimits maxAllowedContentLength="1073741824" /> </requestFiltering> </security>
在abpvnext的HostModule中设置如下代码:
private void ConfigureBodyLengthLimit(ServiceConfigurationContext context) { context.Services.Configure<FormOptions>(options => { options.ValueLengthLimit = int.MaxValue; options.MultipartBodyLengthLimit = int.MaxValue; options.MultipartHeadersLengthLimit = int.MaxValue; }); }
然后进行注册
public override void ConfigureServices(ServiceConfigurationContext context) { var configuration = context.Services.GetConfiguration(); var hostingEnvironment = context.Services.GetHostingEnvironment(); ConfigureBundles(); ConfigureUrls(configuration); ConfigureConventionalControllers(); ConfigureAuthentication(context, configuration); ConfigureLocalization(); ConfigureVirtualFileSystem(context); ConfigureCors(context, configuration); ConfigureSwaggerServices(context, configuration); ConfigureJson(context); ConfigurePasswordSet(context); //注册BOLB容器 ConfigureBLOBServices(configuration); //文件上传大小限制 ConfigureBodyLengthLimit(context); }