.net 为什么我们的请求需要很长时间才能返回?
我们正在使用ASP.NET3和.NET4以及一些不同的IISE(7、8和Express版本) 所有对服务器的请求都需要很长的时间才能返回,无论请求什么,返回时间大约为10秒。我们可以看到(通过附加调试器)正在立即调用控制器方法,并且很快(在毫秒内)返回 我们还可以看到,当GET完成时,浏览器很快(在毫秒内)完成渲染等。因此,延迟介于“返回视图(无论什么)”和“获取完成”之间。这对我来说有点像视图编译——但它发生在每个请求上,所以不应该在第一个请求之后编译视图吗 我们可以使用视图预编译,但不幸的是,启用它会导致许多错误,我们不想为了使它工作而重建整个web项目。正如我上面所说的,视图应该在第一次使用时编译,因此预编译应该只在使用特定视图的第一次请求时才有帮助 你知道如何诊断这一点并找出真正需要时间的原因吗.net 为什么我们的请求需要很长时间才能返回?,.net,asp.net-mvc,.net,Asp.net Mvc,我们正在使用ASP.NET3和.NET4以及一些不同的IISE(7、8和Express版本) 所有对服务器的请求都需要很长的时间才能返回,无论请求什么,返回时间大约为10秒。我们可以看到(通过附加调试器)正在立即调用控制器方法,并且很快(在毫秒内)返回 我们还可以看到,当GET完成时,浏览器很快(在毫秒内)完成渲染等。因此,延迟介于“返回视图(无论什么)”和“获取完成”之间。这对我来说有点像视图编译——但它发生在每个请求上,所以不应该在第一个请求之后编译视图吗 我们可以使用视图预编译,但不幸的是
编辑:在取出每页上呈现的一个局部视图后,突然间,所有内容都变快了。正在调查该视图。罪犯代码如下所示:
itemFactory.Add()
.Text(menuItem.Caption)
.Selected(menuItem.Selected)
.Action(menuItem.Action, menuItem.Controller)
.Enabled(menuItem.Enabled)
.Visible(menuItem.Visible)
;
这个C代码正在构建一个Telerik PanelBar(菜单)。此“fluent接口”的各种方法用于设置要添加的项的属性
不幸的是,有一种方法并没有像您预期的那样:Action(actionName,controllerName)
调用此方法实际上是在控制器上执行操作,而不是在单击PanelBar项时设置要执行的控制器操作
然而,这似乎是异步完成的,因为跟踪上述代码表明它几乎立即运行,因此被排除在外
修复方法是使用Url方法,而不是Action方法,并使用ASP.NET MVC Url方法构建Url。这与直觉相反,因为Telerik ASP.NET MVC框架肯定应该首先使用MVC,其次使用URL,但我们应该:
感谢评论中的建议。您使用过.net档案器工具吗?如果您启动IE并点击F12并转到“网络”选项卡,每个请求显示多长时间?您查看过客户端网络档案吗?Chrome有一个很好的工具,点击F12,点击“网络”并加载页面,看看花了多长时间。你可以试着用它来检查服务器上发生了什么你使用会话状态吗?缓存?您是否尝试过附加迷你探查器之类的工具?查看http响应的大小?查看脚本何时运行?