nik*_*3ro 15 .net c# asp.net performance system.web
我一直关注我的网站性能和所有执行缓慢的代码(> 1s),超过90%是因为System.Web.HttpRequest.GetEntireRawContent()(由System.Web.HttpRequest.FillInFormCollection()调用)
对于ASP.NET站点来说这是正常的......有时在FillInFormCollection方法中花费超过10秒(显然它是从System.Web.UI.Page.PerformPreInit()中调用的)?
或者有办法解决这个问题?
我正在为.NET Framework 3.5编译.
页面我遇到的问题主要是登录页面,虽然没有什么不寻常之处 - 两个TextBox,Checkbox for RememberLogin和Login按钮.Request.ContentLength大约是5KB(我已经记录了Request.Form.ToString() - 没有发现任何异常).我已经进行了大量的跟踪(期待巨大的POST)和调试但是找不到任何合理的理由让FillInFormCollection花费超过10秒(我曾经有过250秒的极端例子).我甚至试过放慢与Fiddler的关系,但无法重现问题.
编辑:感谢所有的评论家伙.我一直在继续追求这个问题...如果它至少得到解决它会拯救其他人很长一段时间;).以下是一些问题的答案.
Sle*_*lee 16
以下是我发现我的应用程序在该方法上表现不佳的问题,或者我应该说是原因: System.Web.HttpRequest.FillInFormCollection()
System.Web.HttpRequest.FillInFormCollection()
一旦数据开始提交到表单,并且一旦收到最后一位数据就完成,它似乎就开始了.如果我的用户连接不良,则可能需要很长时间才能完全提交此信息.因此,这种方法的时间很长.
我在本地计算机上使用了带宽限制器,并且能够重现一致的结果,这些结果与我测试的不同速度一致,连接速度越慢System.Web.HttpRequest.FillInFormCollection()
,运行时间就越长.
除非您收到有关您的网站无法正常工作的投诉,否则您可能只是在查看具有糟糕连接的用户运行的代码.