我的ASP.NET Web API 2应用程序遇到了一个奇怪的问题。当我打开一个新的浏览器实例并加载我的应用程序时,一切都很好 - 请求返回,一切都按预期运行。但是,页面刷新后,一切都停止工作。所有后续请求都会超时并无法返回响应。关闭并重新打开浏览器是解决此问题的唯一方法。
为了确保API正在接收请求,我在Global.asax文件中的Application_BeginRequest方法中添加了一些日志记录。正在写入日志行,因此看起来请求正在进行到那一点,但是,它们不会进入控制器方法。一旦它们超时,它们最终会进入Application_EndRequest方法。
HTTPERR日志包含以下失败请求:
2017-08-28 15:56:47 :: 1%0 2815 :: 1%0 80 HTTP / 1.1 GET / api / - - 1 Connection_Dropped API
我的应用程序是用.NET Framework 4.6.1编写的,我使用Visual Studio 2017作为我的IDE。该应用程序本地托管在Windows 10上的IIS 10.0中。我使用Windows Integrated Security进行身份验证(NTLM),并且ASP.NET会话行为设置为“必需”。调试和发布模式都会出现此问题,并且似乎与特定浏览器无关。
知道可能导致这种情况的原因是什么?我对IIS比较陌生,所以不幸的是我在这里有点迷失。
更新: 在Web.config中将“runAllManagedModulesForAllRequests”设置为false似乎可以解决问题。我需要深入挖掘一下,找出原因为何......