Тело запроса регистрации ServiceStack при загрузке? - PullRequest
1 голос
/ 17 октября 2019

Включил ведение журнала запросов тела и в разработке работает нормально. Тестирование сейчас под нагрузкой и получение ошибок в моих журналах log4net.

ERROR 17-10-2019 14:34:44 ServiceStack.ServiceStackHost [50] - ServiceBase<TRequest>::Service Exception System.ObjectDisposedException: Cannot access a disposed object.
Object name: 'The stream with Id eacfc65d-dcfc-45dd-906b-ddbdb9dd025b and Tag  is disposed.'.
   at ServiceStack.Text.RecyclableMemoryStream.CheckDisposed() in C:\BuildAgent\work\912418dcce86a188\src\ServiceStack.Text\RecyclableMemoryStream.cs:line 1393
   at ServiceStack.Text.RecyclableMemoryStream.set_Position(Int64 value) in C:\BuildAgent\work\912418dcce86a188\src\ServiceStack.Text\RecyclableMemoryStream.cs:line 1017
   at ServiceStack.StreamExtensions.ReadToEnd(MemoryStream ms, Encoding encoding) in C:\BuildAgent\work\912418dcce86a188\src\ServiceStack.Text\StreamExtensions.cs:line 363
   at ServiceStack.StreamExtensions.ReadToEnd(Stream stream, Encoding encoding) in C:\BuildAgent\work\912418dcce86a188\src\ServiceStack.Text\StreamExtensions.cs:line 442
   at ServiceStack.Host.NetCore.NetCoreRequest.GetRawBody() in C:\BuildAgent\work\3481147c480f4a2f\src\ServiceStack\Host\NetCore\NetCoreRequest.cs:line 207
   at RvRequestLogger.DbRequestLogger.CreateEntry(IRequest request, Object requestDto, Object response, TimeSpan requestDuration, Type requestType) in /opt/atlassian/pipelines/agent/build/RvRequestLogger/DbRequestLogger.cs:line 129
   at RvRequestLogger.DbRequestLogger.Log(IRequest request, Object requestDto, Object response, TimeSpan elapsed) in /opt/atlassian/pipelines/agent/build/RvRequestLogger/DbRequestLogger.cs:line 47
   at ServiceStack.HttpExtensions.EndHttpHandlerRequestAsync(IResponse httpRes, Boolean skipHeaders, Boolean skipClose, Func`2 afterHeaders) in C:\BuildAgent\work\3481147c480f4a2f\src\ServiceStack\HttpExtensions.cs:line 121
   at ServiceStack.HttpResponseExtensionsInternal.WriteToResponse(IResponse response, Object result, StreamSerializerDelegateAsync defaultAction, IRequest request, Byte[] bodyPrefix, Byte[] bodySuffix, CancellationToken token) in C:\BuildAgent\work\3481147c480f4a2f\src\ServiceStack\HttpResponseExtensionsInternal.cs:line 364
   at ServiceStack.Validation.ValidationFilters.RequestFilterAsync(IRequest req, IResponse res, Object requestDto, Boolean treatInfoAndWarningsAsErrors) in C:\BuildAgent\work\3481147c480f4a2f\src\ServiceStack\Validation\ValidationFilters.cs:line 65

Теперь моя строка 129 DbRequestLogger делает это, GetRawBody;

if (EnableRequestBodyTracking)
                    {
#if NETSTANDARD2_0
                        // https://forums.servicestack.net/t/unexpected-end-of-stream-when-uploading-to-aspnet-core/6478/6
                        if (!request.ContentType.MatchesContentType(MimeTypes.MultiPartFormData))
                        {
                            entry.RequestBody = request.GetRawBody();
                        }
#else
                        entry.RequestBody = request.GetRawBody();
#endif
                    }

Это может быть связано с этим сообщением https://forums.servicestack.net/t/unexpected-end-of-stream-when-uploading-to-aspnet-core/6478/8

Есть идеи? Кажется, запрос прошел мимо нас в этот момент.

...