我正在运行 ASP.Net 2.0 应用程序,但遇到了性能问题。
一个页面在浏览器中最多需要 20 多秒才能加载。
我想知道问题发生在哪里,即在浏览器(渲染)中还是在服务器(处理)中。
有没有办法记录 IIS 7.5 中每个请求所花费的时间?
有什么建议或帮助吗?
答案1
在 W3C 日志中启用“所用时间”
为了给出一个无用但精确且正确的答案,下面是如何记录每个请求处理所需的时间跨度:
在 IIS 管理器中:
- 在左侧窗格中,展开“站点”
- 选择合适的网站
- 在中间窗格中,双击“日志记录”功能
- 点击“选择字段”
- 确保已选中“所用时间 ( time-taken )”字段。
这里有一份包含截图的 HowTo互联网信息服务
在 IIS 中启用“失败请求跟踪”
但是,这只能告诉您执行请求花费了多少毫秒,而不会告诉您原因。
要深入了解速度缓慢的原因,您可能会受益于“失败请求跟踪”功能:
- 确保已启用名为“跟踪”的 Web 服务器角色服务。可以在服务器管理器中通过选择 Web 服务器角色、“添加角色服务”,然后选中“Web 服务器 -> 运行状况和诊断 -> 跟踪”找到它
- 在 IIS 管理器中,在左侧窗格中选择您的服务器(顶层)
- 双击“失败请求跟踪”
- 在“操作”窗格中,单击“添加...”
- 选择“自定义”,并指定与要跟踪的文件匹配的表达式
- 尽管选择“花费时间”条件看起来很诱人,但是一旦超出限制,它就会导致跟踪停止并生成跟踪报告,因此请改用状态代码条件。
- 保留所有“提供程序”的勾选,然后按“完成”。
现在您已经有了适当的跟踪规则,您需要做的就是在遇到问题的网站上启用站点跟踪:
- 在左侧窗格中,展开“站点”
- 选择合适的网站
- 在中间窗格中,双击“失败请求跟踪”功能
- 您将在列表中看到刚刚配置的规则,显示为“继承”
- 在右侧窗格中,单击“编辑站点跟踪”,选中“启用”并按确定。
所有失败的请求报告将出现在步骤5中指定的文件夹中(默认位置%SystemDrive%\inetpub\logs\FailedReqLogFiles
:)
瞧!