gpt4 book ai didi

asp.net - Owin on IIS Web 请求无限期挂起

转载 作者:行者123 更新时间:2023-12-04 16:08:08 26 4
gpt4 key购买 nike

我们在负载均衡器后面的 Win 2012 R2 上的 IIS 8.5 上运行 Owin 应用程序。在某些情况下,对某些 URL 的请求会无限期地挂起。如果用户在浏览器中选择取消并重新加载页面,则一切正常,服务器响应迅速。

在 IIS 管理器中,我们可以看到请求挂起:
Requests hang in IIS manager
挂起似乎发生在 Owin 管道内。我们正在运行 .NET 4.5.2 和最新的 Owin 包。

这是 /api/whoami 的代码端点:

[Authorize]
public class WhoAmIController : ApiController
{
[Route("whoami")]
[HttpGet]
public IHttpActionResult Whoami()
{
return Json(ClaimsPrincipal.Current.Identity.Name);
}
}

一个观察结果是对这个端点的请求卡在 AuthenticateRequest 中。 IIS 管道中的阶段,而不是 PreExecuteRequestHandler这是 OWIN 管道的默认 IIS 阶段。我们唯一的身份验证方法是 cookie 身份验证,它在 AuthenticateRequest 中执行阶段。

有任何想法吗?

编辑:调整后的截图

最佳答案

问题是我们在 IIS 事件 PreSendRequestHeaders 上执行了代码。 ,这显然是坏的根据
http://www.asp.net/aspnet/overview/web-development-best-practices/what-not-to-do-in-aspnet,-and-what-to-do-instead#presend

我们的目的是在所有请求的出路时调整 HTTP header 。修复方法是将代码移至 BeginRequest事件。

关于asp.net - Owin on IIS Web 请求无限期挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33256407/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com