Размер requestbody в сервисе .Net Core, Linux OS Centos Kestrel
У нас есть сервис который через POST создает в системе запись и самое главное загружает полученные файлы. Получилось так что нам стало нужно загружать файлы до 50 мб. Мы добавили [DisableRequestSizeLimit] но результата ноль. В файле appsettings.json прописали "MaxRequestBodySize": 52428800:
"Kestrel": {
"Endpoints": {
"Http": {
"Url": "http://::5000"
},
"Https": {
"Url": "https://::5002",
"Certificate": {
"Path": "localhost.pfx",
"Password": "Terrasoft+"
}
}
},
"Limits":{
"MaxConcurrentConnections": 100,
"MaxConcurrentUpgradedConnections": 100,
"MaxRequestBodySize": 52428800,
"MaxRequestHeaderCount": 50
}
}
И в коде прописали [DisableRequestSizeLimit]:
[ServiceContract]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]
[DisableRequestSizeLimit]
public class ITISO : BaseService
{
private SystemUserConnection _systemUserConnection;
public SystemUserConnection SystemUserConnection
{
get
{
return _systemUserConnection ?? (_systemUserConnection = (SystemUserConnection)AppConnection.SystemUserConnection);
}
}
[OperationContract]
[WebInvoke(Method = "POST", UriTemplate = "v1/claims",
RequestFormat = WebMessageFormat.Xml, BodyStyle = WebMessageBodyStyle.Bare,
ResponseFormat = WebMessageFormat.Xml)]
[DisableRequestSizeLimit]
public XElement CreateNewClaim(Stream req)
{
SessionHelper.SpecifyWebOperationIdentity(HttpContextAccessor.GetInstance(), SystemUserConnection.CurrentUser);
ITClaimHelper integrationHelper = new ITClaimHelper(SystemUserConnection);
TypeCreateClaimReq serializedClaimReq = integrationHelper.GetTypeCreateCaseReq(req);
var response = integrationHelper.ImportEntity(serializedClaimReq);
return response;
}
}
Ошибка при отправке файла больше 30мб.
HResult=0x80131620
Message=Request body too large.
Source=Microsoft.AspNetCore.Server.Kestrel.Core
StackTrace:
at Microsoft.AspNetCore.Server.Kestrel.Core.BadHttpRequestException.Throw(RequestRejectionReason reason) in /_/src/Servers/Kestrel/Core/src/BadHttpRequestException.cs:line 41
Microsoft.AspNetCore.Server.Kestrel.Core.BadHttpRequestException
HResult=0x80131620
Message=Request body too large.
Source=Microsoft.AspNetCore.Server.Kestrel.Core
StackTrace:
at Microsoft.AspNetCore.Server.Kestrel.Core.BadHttpRequestException.Throw(RequestRejectionReason reason) in /_/src/Servers/Kestrel/Core/src/BadHttpRequestException.cs:line 41
at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.Http1ContentLengthMessageBody.OnReadStarting() in /_/src/Servers/Kestrel/Core/src/Internal/Http/Http1ContentLengthMessageBody.cs:line 237
at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.MessageBody.TryStart() in /_/src/Servers/Kestrel/Core/src/Internal/Http/MessageBody.cs:line 92
at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.Http1ContentLengthMessageBody.<ReadAsyncInternal>d__9.MoveNext() in /_/src/Servers/Kestrel/Core/src/Internal/Http/Http1ContentLengthMessageBody.cs:line 59
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() in /_/src/System.Private.CoreLib/shared/System/Runtime/ExceptionServices/ExceptionDispatchInfo.cs:line 63```