c# - BeginProcessRequest() 中到底发生了什么? (无 session 状态)

标签 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()?

这里到底发生了什么?

谢谢!

最佳答案

除了与 session 状态相关的线程敏捷性之外,还有一些因素可能会导致较长的 BeginRequest 时间。

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

在某些情况下,当应用程序首次启动时,您会看到很长的 BeginRequest 时间。对于您的 Azure 应用程序,您可以尝试将应用程序池的启动模式设置为“始终开启”,以减少应用程序可能必须停止/启动(导致长时间启动请求)的次数。

Here是一个包含一些附加信息的文档,并且 here是一个论坛帖子,其中没有 session 状态的用户也遇到了类似的问题。

关于c# - BeginProcessRequest() 中到底发生了什么? (无 session 状态),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27712704/

相关文章:

c# - 使用存储过程作为返回对象而不是使用 foreach 来填充数据模型的后果?

spring - Thymeleaf 表达式对象 : #session and ${session. ...}

jsp - 如何验证/无效 session jsp/servlets?

c# - C# azure storage download 中路径访问被拒绝

azure - 用于访问所有电子邮件文件夹的 Microsoft Graph API

c# - 在 WPF 项目中更改 Main

c# - 多少异步/等待是可以的?

c# - 如何在拥有的实体中定义关系属性的名称

php - Laravel 5 Session 不适用于第二页

Azure B2C - 如何从 Microsoft Graph 获取用户详细信息?