Невозможно прочитать тело запроса в Owin (застряло в ReadAsStringAsyn c) - PullRequest
1 голос
/ 15 февраля 2020

Запуск собственного веб-сервиса OWIN в Azure Сервис Fabri c позади Azure Балансировщик нагрузки и Azure Traffi c Профиль менеджера с несколькими экземплярами. Около 2% веб-запросов зависли, когда служба пытается прочитать тело запроса из входящих запросов в строку, используя HttpContent.ReadAsStringAsyn c. Поэтому ReadAsStringAsyn c завершается с ошибкой по истечении времени ожидания:

System. Net .Http.HttpRequestException: Ошибка при копировании содержимого в поток.

Веб-сервис получает запросы разных размеров, большинство из них небольшие, но некоторые могут достигать 60 КБ. Количество одновременных ожидающих запросов / экземпляров составляет около 900, а загрузка процессора ~ 30%. Уменьшение количества услуг помогает немного, но не решает полностью, я также пытаюсь понять, что является причиной root. Вот настройка, которую я переопределяю в OwinHttpListener:

listener.SetRequestProcessingLimits(Environment.ProcessorCount * 5, int.MaxValue);
listener.SetRequestQueueLimit(10000);

Любые идеи о причине root и / или как это исправить? Owin ver:

PackageReference Include = "Microsoft.As pNet .WebApi.Owin" Version = "5.2.6"

...