gpt4 book ai didi

asp.net-mvc-3 - Initialize 和 action 之间会发生什么?

转载 作者:行者123 更新时间:2023-12-04 05:49:56 25 4
gpt4 key购买 nike

我有一个很少发生但无论如何都可能被捕获的问题。问题是有时当我调用某些 Controller 的操作时会出现巨大的时间延迟。我记录了时间,结果看起来很奇怪:

> -->BeginRequest: /Data/MyController Now: 17:47:37:248 Thread id = 22
> ---->Prerequest: /Data/MyController Now: 17:47:37:249 Thread id = 22
> ------>Init DataController: /Data/MyController Now: 17:47:37:250 Thread id = 22
> ------>/Data/MyController executing: Now: 17:47:46:302 Thread id = 22
> == /Data/MyController inside: now is 17:47:46:304

BeginRequest 和 Prerequest 是记录到 Global.asax 中的事件,Init 来自 Controller 。初始化覆盖方法,执行 - 来自 Controller 中的 OnActionExecuting。

如您所见, Controller 的初始化和执行之间几乎有 10 秒的时间。我不明白这段时间发生了什么。我应该检查哪些事件?

最佳答案

在 Initialize 方法和进入 Controller 操作之间可能会发生很多事情。你可以看看following article它提供了深入的概述。并且可以下载the poster here .

基本上在初始化 Controller 之后发生的步骤是:

  • 授权过滤器 OnAuthorization 方法称为
  • 模型绑定(bind)器反序列化参数
  • Action 过滤器 OnActionExecuting 方法被调用

  • 文章中显示的图表中存在轻微错误,其中步骤 1 和 2 颠倒了。事实上,授权过滤器在模型绑定(bind)之前执行。

    因此,您应该在代码中寻找自定义授权过滤器、自定义模型绑定(bind)器和自定义操作过滤器。所有这些都可能导致您在 Controller 的初始化逻辑和进入 Controller 操作之间观察到的减速。

    关于asp.net-mvc-3 - Initialize 和 action 之间会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10196627/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com