BeginProcessRequest()究竟发生了什么? (没有会话状态)

时间:2014-12-30 21:18:22

标签: c# session azure model-view-controller newrelic

System.Web.Mvc.MvcHandler.BeginProcessRequest()到底发生了什么?我有一个在Azure上运行的MVC项目,而对于NewRelic,它为BeginProcessRequest()显示500ms-1500ms。我不使用SessionState(web.config中的<sessionState mode="Off" />)。

我已经看过这个类似的问题:What happens in BeginProcessRequest()?

这到底发生了什么?

谢谢!

1 个答案:

答案 0 :(得分:1)

除了与会话状态相关的线程敏捷性之外,还有一些事情会导致很长的BeginRequest次数。

如果New Relic无法在事务中获得足够深入/详细的数据,则会将其汇总到BeginRequest方法时间。如果可以在数据库或外部服务中花费时间,也会发生这种情况。这也通过异步活动得到证明,该异步活动无法绑定到触发它的事务。

还有一些实例,首次启动应用程序,您可以看到很长的BeginRequest时间。对于Azure应用程序,您可以尝试将应用程序池的启动模式设置为&#34; Always On&#34;看看你的应用可能必须停止/启动的时间减少,导致长时间的开始请求。

Here是一个包含一些其他信息的文档,而here是一个论坛帖子,其中没有会话状态的用户遇到过类似的问题。