System.Web.HttpRequest.FillInFormCollection()和System.Web.Htt

本文关键字:System Web Htt FillInFormCollection HttpRequest | 更新日期: 2023-09-27 18:15:27

我一直在跟踪我的网站的性能和所有执行缓慢的代码(> 15),超过90%是因为System.Web.HttpRequest.GetEntireRawContent()(由System.Web.HttpRequest.FillInFormCollection()调用)

这对ASP来说是正常的吗?网网站…有时在FillInFormCollection方法中花费超过10秒(显然它是从System.Web.UI.Page.PerformPreInit()调用的)?

或者有办法解决这个问题?

我正在编译。net Framework 3.5.

页面我大多遇到麻烦是登录页面,虽然没有什么不寻常的-两个文本框,复选框为记得登录和登录按钮。请求。ContentLength大约是5KB(我已经记录了Request.Form.ToString() -没有发现任何异常)。我已经执行了大量的跟踪(预计会有大量的post)和调试,但找不到任何合理的理由让FillInFormCollection花费超过10秒(我曾经有一个250秒的极端例子)。我甚至试过放慢与Fiddler的连接速度,但无法重现这个问题。

编辑:谢谢大家的评论。我一直在研究这个问题……如果这个问题得到解决,至少可以为其他人节省不少时间;)以下是对其中一些问题的回答。
  1. 这是纯HTTP(不是HTTPS), 0错误日志(有趣的是,请求实际上得到完成;)
  2. 当用户点击Login.aspx时,
  3. 站点没有被加载。站点实际上在99%的时间内运行良好(每周处理大约4000万个HTTP请求,AVG CPU利用率低于10%)
  4. 绝对是application/x-www-form-urlencoded - ASP。NET表单(runat=server)以这种方式提交。我唯一不明白的是为什么。net需要>10秒来读取小于6KB的POST。
  5. 我得出的唯一合理的结论(到目前为止)是->客户从非常慢的连接访问网站(还记得GPRS吗?)。但我真的想探索所有其他选择,而不仅仅是诉诸于"它的用户连接"。如果是这样的话,我希望我能在每个页面上看到类似的事情发生在用户身上。
  6. 只是希望它不是这样的:IIS 6.0服务器太忙HTTP 503 Connection_Dropped DefaultAppPool
  7. 得到参考此页:识别Web应用程序上的慢HTTP攻击漏洞这是可能发生的。

System.Web.HttpRequest.FillInFormCollection()和System.Web.Htt

这是我发现的问题,或者我应该说原因,我的应用程序在方法上表现不佳:System.Web.HttpRequest.FillInFormCollection()

似乎System.Web.HttpRequest.FillInFormCollection()在收到提交给表单的数据开始时立即启动,并在接收到最后一位数据后完成。如果我的用户连接不佳,则可能需要很长时间才能完全提交此信息。因此这个方法需要很长时间。

我在本地机器上使用了带宽限制器,并且能够重现与我测试的不同速度一致的结果,连接速度越慢,System.Web.HttpRequest.FillInFormCollection()运行的时间越长。

除非有人抱怨你的网站不工作,否则你可能只是在看那些连接糟糕的用户运行的代码。