IdentityServer4 - Azure - Kestrel? ... Таймауты - PullRequest
0 голосов
/ 23 ноября 2018

Таким образом, у нас возникают проблемы с загрузкой, и мы не очень понимаем, почему ... если я забью свой сервер тестом производительности в сети - он будет счастлив под небольшой нагрузкой - но если я его накачаю, мы получим тайм-ауты и ошибки.

Это может быть связано с хостингом, так как мы используем Azure. Это может быть связано с IdentityServer4, поскольку именно это мы используем для Auth. Это может быть связано с другим кодом.

Ошибки - это первая ошибка, которую мысм.

Status Code 408 - on this Url /Identity/Account/Login

Microsoft.AspNetCore.Server.Kestrel.Core.BadHttpRequestException: чтение тела запроса истекло из-за слишком медленного поступления данных.Смотрите MinRequestBodyDataRate.в Microsoft.AspNetCore.Server.Kestrel.Core.BadHttpRequestException.Throw (причина RequestRejectionReason) в Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.Http1MessageBody.PumpAsync () в System.IO.Pipelines.ThomLipв System.IO.Pipelines.Pipe.GetReadResult (ReadResult & result) в System.IO.Pipelines.Pipe.GetReadAsyncResult () в System.IO.Pipelines.Pipe.DefaultPipeReader.GetResult (токен Int16) в Microsoft.AspNetCore.Server.est.Core.Internal.Http.AspNetCore.Mvc.ModelBinding.CompositeValueProvider.CreateAsync (ControllerContext controllerContext) в Microsoft.AspNetCore.Mvc.Internal.ControllerBinderDelegateProvider. <> C__DisplayClass0_0.d.MoveNext () --- Конец трассировки стека от предыдущего местоположения, где было сгенерировано исключение --- в Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.InvokeInnerFilterAsync () в Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeNextResourceFilter (в Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.Rethrow (контекст ResourceExecutedContext) в Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.Next (State & next, Scope & scope, Object & state, Boolean & isCompleted) в Microsoft.AspNetCternalInMc.c.ResourceInvoker.InvokeFilterPipelineAsync () в Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeAsync () в Microsoft.AspNetCore.Builder.RouterMiddleware.Invoke (HttpContext httpContext) в H.Hosting.IdentityServerMiddleware.Invoke (контекст HttpContext, маршрутизатор IEndpointRouter, сеанс IUserSession, события IEventService) в Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke (контекст HttpContext) в Microsoft.AspNetCore.Cors.Infrastructure.CorsMiddleware.Invoke (контекст HttpContext) в IdentityServer4.Hosting.BaseUrlMiddleware.Invoke (контекст HttpContext) в Microsoft.AspNetCore.DiagnosticsInxtware.tep.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.Invoke (контекст HttpContext) в Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.Invoke (контекст HttpContext)

Мы получаем еще один, вероятно, из-за того, что это происходит уже сейчас, но выдается здесьпо следующему адресу

/connect/token

Мы добавили .UseIISIntegration() при запуске приложения, так как это требовалось для чтения приложений Azure.мы также попытались изменить свойства тайм-аута kestrels, например

.UseKestrel(options =>
            {
                options.Limits.MinRequestBodyDataRate =
                    new MinDataRate(bytesPerSecond: 100, gracePeriod: TimeSpan.FromSeconds(10));
                options.Limits.MinResponseDataRate =
                    new MinDataRate(bytesPerSecond: 100, gracePeriod: TimeSpan.FromSeconds(10));
            })

, кроме этого - мы попытались увеличить биты инфраструктуры - например, уровень SQL db, уровни AzureApp.Некоторые избавились от других проблем, которые у нас были - например, тайм-ауты БД - но эта проблема все еще остается.

Если вам нужна дополнительная информация, я могу попытаться откопать ее.Заранее спасибо, Адриан

...