IIS 上的 Owin Web 请求无限期挂起

2024-01-12

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

In IIS manager, we can see the requests hanging: Requests hang in IIS manager The hang seems to occur inside the Owin pipeline. We are running .NET 4.5.2 and the latest Owin packages.

这是代码/api/whoami端点:

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

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

有任何想法吗?

编辑:调整截图


问题是我们在 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://www.asp.net/aspnet/overview/web-development-best-practices/what-not-to-do-in-aspnet,-and-what-to-do-instead#presend

我们的目的是在所有请求发出时调整 HTTP 标头。解决方法是将代码移至BeginRequest event.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

IIS 上的 Owin Web 请求无限期挂起 的相关文章

  • 从 C# 应用程序调用 ASP.net Web 服务

    我有个问题 我如何调用 Web 服务并从 C 桌面应用程序获取结果 我正在制作一个桌面应用程序 我希望它能够连接到我的在线 ASP net Web 服务 这怎么可能 在 解决方案资源管理器 中 右键单击项目节点并选择 添加 Service参
  • SQL Server 2005 - 应该多久重建一次索引?

    我最近接手了一个项目 他们有一个 SQL 作业设置 每三个小时运行一次 它会重建 ASP NET 会员数据库表中找到的索引 每天重建索引 8 次 这看起来相当高 我每天都会获得大约 2000 个新用户 总共大约有 200 万注册用户 对于正
  • ASP.NET GridView 项目模板

    好的 我有一个 GridView 并且有一个列 如果文件存在 我希望将其作为链接 否则我只想将其作为标签 现在 我正在使用参数中传递的 Row 更改 RowDataBound 事件处理程序上的控件 我不太喜欢这个 因为我对列 ID 进行了硬
  • 如何在网页中显示嵌入的 Excel 文件?

    我想允许在网页中查看嵌入的 Excel 报告 有什么办法吗 我不想使用 ActiveX 或 OWC Office Web 组件 我只想从 Internet Explorer 应用程序打开现有文件 我不希望用户下载然后打开它 使用 ifram
  • JQuery:获取 ASP.NET CheckBoxList 控件中复选框的值/文本/innerHtml

    我有一堆由 asp net CheckBoxList 控件生成的复选框 我想获取用户在页面上的控件旁边看到的文本 对于类似的控件 例如 RadioButtonList 我可以通过执行以下操作在 jQuery 中获取它们的值 var sele
  • 如何逐行解析文本区域中的用户输入

    如果我有一个包含文本信息的变量 比如从文本区域获取 如何逐行读取字符串变量中保存的文本内容 在文本区域中输入的文本将以 n 输入键 来分隔行 您可以使用StringReader http msdn microsoft com en us l
  • 将 WebResponse 保存为 txt

    我正在寻找一种与 WebResponse 中的 Request SaveAs 等效的方法 但我找不到它 我想将网络响应的标题和正文存储在 txt 文件中 你知道有什么技术可以实现它吗 没有内置的方法 但您可以简单地使用获取响应流 http
  • System.Web.UI.ViewStateException:无效的视图状态

    我有一个用 ASP net 和 C 开发的 Web 应用程序 我还使用 Telerik ASP NET AJAX 作为 Web UI 应用程序抛出异常 System Web UI ViewStateException Invalid vie
  • 在 ASP.NET 中调用异步方法时的令人困惑的行为

    我使用 Visual Studio 2012 创建了一个 ASP Web 应用程序 如果我修改默认页面如下 public partial class Default Page static async Task PerformSleepin
  • ASP.NET 项目在移动到另一台计算机时抛出 HTTP 错误 500.19

    我将一个 3 层 ASP NET 项目从运行 Visual Studio 2010 的系统复制到也运行 Visual Studio 2010 的系统 当我右键单击并选择浏览器中位于 UI 层下的文件夹内的文件上的视图时 我得到错误 HTTP
  • 如何发送电子邮件而不进入垃圾邮件

    MailAddress mailFrom new MailAddress email protected cdn cgi l email protection MailAddress mailTo new MailAddress email
  • mvc 2中的图像上传和预览

    我正在通过转换 asp net 网站来学习 mvc 2 在我的页面中 我必须上传图像并显示图像的预览 下面给出了我的 asp net 页面的屏幕截图 我将模型创建为 public class Contest public int conte
  • 如何使用 BoundFields 将 FooterTemplate 添加到 GridView

    希望您周末愉快 终于我有了一些编辑 删除事件器来与 LINQ 支持一起工作 我有一个添加记录事件 我知道它正在工作 但是在尝试了一部分之后 我不知道如何在页脚中添加一些文本框 所以它是从页眉到页脚的一行 没有向右或向左移动 有人可以帮助我吗
  • 如何正确链接不同View之间

    我有一个master cshtml带有导航栏 我的第一个链接是另一个视图 ProjectManagement li a href Views ProjectManagement cshtml Project Management a li
  • 在 ASP.NET 更新面板中使用时,文本框回发值中缺少回车符(ASCII 字符 13)

    我有一个 ASP NET TextBox 其 TextMode TextBox Mode Multi Line 在 AJAX 更新面板中使用 Text 值已预设为具有多行的值 当使用 Chrome 7 0 517 41 或 Firefox
  • 将 NameValueCollection 绑定到 GridView?

    我应该使用哪种集合来将 NameValuecollection 转换为可绑定到 GridView 直接做的时候没效果 aspx cs 中的代码 private void BindList NameValueCollection nvpLis
  • 限制违反架构 - asp.net MVP

    如果我们在应用程序中定义了层次结构 对于前三层架构 我们如何限制后续开发人员违反规范 例如 在 MVP 不是 ASP NET MVC 架构的情况下 演示者应该始终绑定模型和视图 这有助于编写正确的单元测试程序 然而 我们也遇到过这样的情况
  • IIS 7 错误:无法执行程序。正在执行的命令是 csc.exe(ApplicationPoolIdentity 默认设置)

    这是我的第一个问题 如果我有一些语法错误 请向我道歉 问题描述 我在多台服务器上安装了运行在 IIS 7 Windows Server 2008 和 SQL Server 2008 R2 上的基于 32 位 MVC 5 的 CRUD 系统
  • 在 javascript 中访问 ajax POST 响应

    我正在从 javascript 函数发出 ajax POST 请求 function UpdateMetrics ajax type POST url MyHandler ashx Param1 value1 data contentTyp
  • Microsoft.Extensions.Caching.Redis 选择与 db0 不同的数据库

    一个关于了解使用哪个redis数据库以及如何配置它的问题 我有一个默认值ASP NET Core Web 应用程序和默认配置的本地redis服务器 含15个数据库 通过包管理控制台我已经安装了 Install Package Microso

随机推荐