在发布包含一个或多个文件(作为base64字符串)的请求时,我得到以下错误响应:
错误2018-11-22 09:54:18,244 [13] Mvc.ExceptionHandling.AbpExceptionFilter-远程服务器返回了意外的响应:(413)请求实体太大。 System.ServiceModel.ProtocolException:远程服务器返回了意外的响应:(413)请求实体太大。 在System.Runtime.AsyncResult.End [TAsyncResult](IAsyncResult结果)处 在System.ServiceModel.Channels.ServiceChannel.SendAsyncResult.End(SendAsyncResult结果) 在System.ServiceModel.Channels.ServiceChannel.EndCall处(字符串操作,Object []输出,IAsyncResult结果) 在System.ServiceModel.Channels.ServiceChannelProxy.TaskCreator。<> c__DisplayClass1_0.b__0(IAsyncResult asyncResult) ---从之前引发异常的位置开始的堆栈结束跟踪--- 在...
我已经搜索了解决方法,但是我一直都被重定向到WCF解决方案。
我在WebApi项目的web.config中添加了以下内容,但似乎没有什么不同。
<configuration>
<system.webServer>
....
<asp>
<limits maxRequestEntityAllowed="2147483648"/>
</asp>
<serverRuntime uploadReadAheadSize="2147483647" />
</system.webServer>
</configuration>
任何人都可以帮助我或指向我正确的资源吗?
答案 0 :(得分:2)
对我来说,我必须使用maxAllowedContentLength在web.config设置中进行操作,并且还要在读取文件的操作上使用属性。我正在研究IIS上托管的.NET Core 3应用程序。
Web.config:
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="2147483648" />
</requestFiltering>
</security>
...
</system.webServer>
关于控制器动作的属性:
[DisableRequestSizeLimit]
[HttpPost]
public async Task<IActionResult> PostMyFile(){
...
}
答案 1 :(得分:1)
您需要更改两个限制。红est和IIS。
您可以在Program.cs中更改Kestrel的MaxRequestBodySize限制。
public static IWebHost BuildWebHost(string[] args)
{
return WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.UseKestrel(options =>
{
options.Limits.MaxRequestBodySize = long.MaxValue;
})
.UseIISIntegration()
.Build();
}
IIS的限制可以在web.config中更改:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="2147483648" />
</requestFiltering>
</security>
</system.webServer>
</configuration>
答案 2 :(得分:0)
我认为,您可能需要修改web.config,然后添加“ maxRequestLength”和“ maxAllowedContentLength”
select * from <myTable> where f1 = :val1 and f2 = :val2 and f3 = :val3
select * from <myTable> where f1 = :val4 and f2 = :val5 and f3 = :val6
select * from <myTable> where f1 = :val7 and f2 = :val8 and f3 = :val9
答案 3 :(得分:0)
WCF中的默认限制大小为65 KB。您是否可以尝试在绑定配置内添加以下字段?
<binding maxReceivedMessageSize="10485760">