0

鉴于 ASP.NET MVC 控制器中的两个操作返回相同的内容,但一个处理 GET 请求,一个处理 POST 请求。GET 操作总是在 0.1 秒内返回,而 POST 操作总是在 30 秒内返回。该操作本身完成得非常快,但由于某种原因,浏览器(IE 和 Chrome)在 Network Profiler 中显示为等待 30 秒 - 可能导致延迟的原因是什么?有什么办法可以调试吗?

    [HttpGet]
    public ActionResult MyAction()
    {
        return View("MyView");
    }

    [HttpPost]
    public ActionResult MyAction(object obj)
    {
        return View("MyView");
    }

每个网络配置文件:

http://MyDevServer.com:8080/MyController/MyAction 方法:GET 状态:200 OK 时间:0.194 秒

http://MyDevServer.com:8080/MyController/MyAction 方法:POST 状态:200 OK 时间:30.39 秒

4

1 回答 1

0

需要研究的几件事:

  1. 您是否有一段代码挂接到堆栈并延迟执行、视图引擎、过滤器或提供程序?您将能够通过使用像EQATEC Profiler这样的分析器来发现这一点(该死的它已被 Telerik 接管,但它在年底之前仍然是免费的)。

    1a。您是否让 MVC 以标准方式找到您的视图?您是否以任何方式添加到 ViewLocations 中?

  2. 你的服务器上发生了什么?您是否看到任何性能峰值随着 POST 移动以指示发生了一些不愉快的事情?

  3. 当您删除对象参数时会发生什么?任何改变?

  4. 你说这代码。你在这个项目中使用实体框架吗?根据设置,这有时会显着提高性能

  5. 描述 IIS 中的应用程序池。模式?其他设置?

于 2013-08-08T21:58:33.120 回答