MVC GET Action需要0.1秒,相同的POST Action需要30秒

时间:2013-08-08 18:10:01

标签: asp.net-mvc http-post asp.net-mvc-routing http-get

鉴于ASP.NET MVC控制器中的两个Action返回相同的内容,但是一个处理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秒

1 个答案:

答案 0 :(得分:0)

要考虑的一些事项:

  1. 您是否有一段代码挂钩并延迟执行,视图引擎,过滤器或提供程序?你可以通过使用像EQATEC Profiler这样的分析器来找到它(该死的被Telerik接管,但直到今年年底它仍然是免费的。)

    1a上。你是否让MVC以标准方式找到你的观点?您是否以任何方式添加到ViewLocations?

  2. 您的服务器上发生了什么?你是否看到任何性能高峰,因为POST会表明发生了一些不愉快的事情?

  3. 删除对象参数后会发生什么?有什么变化吗?

  4. 你说这个代码。您是否在此项目中使用Entity Framework? This可以根据设置有时显着提高性能。

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