Ответ: 413 Запрос Слишком Большой Объект - PullRequest
0 голосов
/ 22 ноября 2018

При отправке запроса, который может содержать один или несколько файлов (в виде строки 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.Send [Channels.SingviceCРезультат IAsyncResult) в System.ServiceModel.Channels.ServiceChannelProxy.TaskCreator. <> C__DisplayClass1_0.b__0 (IAsyncResult asyncResult) --- Конец трассировки стека из предыдущего местоположения, в котором было сгенерировано исключение --- в ...

Я искал, как решить эту проблему, но меня постоянно перенаправляют на решения WCF.

Я добавил следующее в web.config моего проекта WebApi, но, похоже, это неразница.

<configuration>
  <system.webServer>
    ....
    <asp>
      <limits maxRequestEntityAllowed="2147483648"/>
    </asp>
    <serverRuntime uploadReadAheadSize="2147483647" />
  </system.webServer>
</configuration>

Кто-нибудь может мне помочь или указать мне нужный ресурс?

Ответы [ 3 ]

0 голосов
/ 22 ноября 2018

Я думаю, вам может понадобиться изменить ваш web.config, а затем добавить «maxRequestLength» и «maxAllowedContentLength»

<system.web>
    <compilation debug="true" targetFramework="4.5.2"/>
    <httpRuntime targetFramework="4.5.2" maxRequestLength="50240" executionTimeout="600"/> <!-- in Kb  -->
  </system.web>
  <system.webServer>
    <security>
      <requestFiltering>
         <requestLimits maxAllowedContentLength="52428800" /> <!-- in byte (50 Mb) -->                                               
      </requestFiltering>
   </security>
0 голосов
/ 22 ноября 2018

Предельный размер по умолчанию 65 КБ в WCF.Не могли бы вы попытаться добавить поле ниже в вашей конфигурации привязки.<binding maxReceivedMessageSize="10485760">

0 голосов
/ 22 ноября 2018

Есть два ограничения, которые нужно изменить.Kestrel и IIS.

Вы можете изменить предел MaxRequestBodySize для Kestrel в Program.cs.

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>
...