闲置后,ASP.NET Core应用程序对请求的响应速度缓慢

时间:2019-02-18 22:17:13

标签: iis asp.net-core windows-server-2016

我有一个在Windows Server 2016计算机上运行的ASP.NET Core MVC应用程序。我遇到的问题是,在闲置约1分钟后,应用程序响应速度很慢。如果我连续使用该应用程序,一切都会好起来,但是如果我一分钟不提交请求,那么下一个请求将需要10秒钟以上才能得到答复。

我开始摆弄IIS App Pool设置以保持其活动状态,但没有任何更改。最后,我完全将IIS删除,并使用Http.Sys运行了该应用程序的构建,其行为没有改变。我在Http.Sys中运行的cmd窗口中监视了应用程序日志,空闲了一分钟后,当下一个请求进入大约10秒钟时没有输出,因此该应用程序甚至没有开始执行任何操作直到那时。 10秒后,应用会在正常时间内响应请求。

示例应用日志:

  

信息:Microsoft.AspNetCore.Routing.EndpointMiddleware [0]         执行端点'XXXXXX(XXXX)'   信息:Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker [1]         与{action =“ xxx”,controller =“ xxx”}匹配的路由。执行动作XXXXXX(XXXX)   信息:Microsoft.AspNetCore.Hosting.Internal.WebHost [2]         请求完成于6.2621ms 200 text / html; charset = utf-8

//立即刷新页面:

  

信息:Microsoft.AspNetCore.Routing.EndpointMiddleware [0]         执行端点'XXXXXX(XXXX)'   信息:Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker [1]         与{action =“ xxx”,controller =“ xxx”}匹配的路由。执行动作XXXXXX(XXXX)   信息:Microsoft.AspNetCore.Hosting.Internal.WebHost [2]         请求完成6.658ms 200 text / html; charset = utf-8

//等待1分钟,然后刷新页面 (约10秒钟内日志中没有任何活动,然后这样:)

  

信息:Microsoft.AspNetCore.Routing.EndpointMiddleware [0]         执行端点'XXXXXX(XXXX)'   信息:Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker [1]         与{action =“ xxx”,controller =“ xxx”}匹配的路由。执行动作XXXXXX(XXXX)   信息:Microsoft.AspNetCore.Hosting.Internal.WebHost [2]         请求完成7.1181ms 200 text / html; charset = utf-8

我是否可以寻找某些东西在服务器上休眠这些进程?我在Visual Studio中本地运行,或者在另一台测试服务器上进行测试时,只在暴露在Internet上的此演示服务器上,没有这种体验。我还应该补充一点,我将DbContext与SQL Server 2017一起使用,如果可能将其作为中间件注入到每个请求管道中。

0 个答案:

没有答案