【发布时间】:2013-08-08 18:10:01
【问题描述】:
鉴于 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 方法:获取 状态:200 OK 时间:0.194 秒
http://MyDevServer.com:8080/MyController/MyAction 方法:POST 状态:200 OK 时间:30.39 秒
【问题讨论】:
-
这是否托管在 IIS 中?
-
如果您在您的操作方法的 POST 版本中设置断点,请求是否需要一段时间才能到达操作方法,或者它是否快速到达那里但需要一段时间才能返回客户端?
-
您应该在 db.connection 上的代码中查找问题(在 ActionResult 中向我们展示您的真实代码)。
-
同意。这两个操作之间应该没有区别,因此您的真实代码中一定有某些东西导致了问题。
-
1.在我的开发服务器上,2。它非常快地到达并跳过返回方法,然后需要很长时间才能返回到客户端。 3. 这是真正的代码 - 只是更改了变量名称,我同意应该没有区别 - 这是一个带有 Razor 和 ASP 视图引擎的站点,我试图添加的框架是 DevExpress,这些操作是针对其中一个控件的。如何分析 Action 返回和浏览器接收之间发生的情况?感谢您的帮助
标签: asp.net-mvc http-post asp.net-mvc-routing http-get