Вы хотите, чтобы что-то вроде этого увеличивало квоты размера сообщения в файле App.config или Web.config :
<bindings>
<basicHttpBinding>
<binding name="basicHttp" allowCookies="true"
maxReceivedMessageSize="20000000"
maxBufferSize="20000000"
maxBufferPoolSize="20000000">
<readerQuotas maxDepth="32"
maxArrayLength="200000000"
maxStringContentLength="200000000"/>
</binding>
</basicHttpBinding>
</bindings>
И используйте имя привязки в конфигурации вашей конечной точки, например
...
bindingConfiguration="basicHttp"
...
Обоснование значений прост, они достаточно велики, чтобы разместить большинство сообщений. Вы можете настроить это число в соответствии с вашими потребностями. Низкое значение по умолчанию в основном предотвращает атаки типа DOS. Чтобы сделать его 20000000, чтобы распределенная DOS-атака была эффективной, размер по умолчанию для 64k потребовал бы очень большого количества клиентов, чтобы в большинстве случаев превосходить большинство серверов.
Вы можете использовать .map
вместо этого и назначить обратно element
внутри .then
, прикованного к вызову getAmount
:
await Promise.all(
result.map((element) => (
getAmount(element.dealValue, element.dealType)
.then((result) => {
element.IDGfee = result;
})
))
);
(Хотя, как отмечается в комментарии, это не будет дождитесь возвращения каждого ответа, прежде чем присваивать каждому element
- ваш текущий код будет выдан перед присваиванием, если какой-либо запрос выдает ошибку, тогда как он может бросить после того, как некоторые свойства были назначены.)