Код: Выделить всё
fail: [namespace].[mycustommiddleware][0]
Request has finished and HttpContext disposed.
Object name: 'HttpContext'.
System.ObjectDisposedException: Request has finished and HttpContext disposed.
Object name: 'HttpContext'.
at Microsoft.AspNetCore.Http.DefaultHttpContext.ThrowContextDisposed()
at Microsoft.AspNetCore.Http.DefaultHttpContext.get_Features()
at Microsoft.AspNetCore.Authentication.RequestPathBaseCookieBuilder.Build(HttpContext context, DateTimeOffset expiresFrom)
at Microsoft.AspNetCore.Http.CookieBuilder.Build(HttpContext context)
at Microsoft.AspNetCore.Authentication.Cookies.CookieAuthenticationHandler.BuildCookieOptions()
at Microsoft.AspNetCore.Authentication.Cookies.CookieAuthenticationHandler.HandleSignInAsync(ClaimsPrincipal user, AuthenticationProperties properties)
at Microsoft.AspNetCore.Authentication.AuthenticationService.SignInAsync(HttpContext context, String scheme, ClaimsPrincipal principal, AuthenticationProperties properties)
< /code>
Далее приведен мой код, настраивая задачи и создание запросов.var tasks = Enumerable.Range(1, 50).Select(async i =>
{
var user = userPool[random.Next(userPool.Length)];
using (var client = server.CreateClient())
{
var cookie = CreateCookie(user.Company, user.UserName, dataProtectionProvider);
client.DefaultRequestHeaders.Clear();
client.DefaultRequestHeaders.Add("cookie", $"RefreshToken={user.RefreshToken}; Token={user.Token}; Test={cookie}");
var request = new HttpRequestMessage(HttpMethod.Get, "/");
var response = await client.SendAsync(request, HttpCompletionOption.ResponseContentRead);
response.EnsureSuccessStatusCode();
var content = await response.Content.ReadAsStringAsync();
Assert.That(response.IsSuccessStatusCode, $"Failed for {user.UserName}: {content}");
return content;
}
});
await Task.WhenAll(tasks);
Подробнее здесь: https://stackoverflow.com/questions/797 ... isposed-wh
Мобильная версия