我有一台 Windows 2003 服务器,上面运行着一个 IIS 6 网站。最近,我们在 .NET4.0 中开发了一个组件,并将其安装在网站的子文件夹中。为 .NET 4.0 创建了一个新应用程序池,并将该应用程序池分配给 .NET 4 子文件夹。我可能需要提到,原始网站同时使用 .NET 2.0 和旧版 asp。该网站正在使用针对 AD 的集成身份验证运行。
除了集成到 .NET 4.0 文件夹之外,所有程序都在运行。当调用 .NET 4.0 文件夹中的应用程序时,IIS 至少需要 15 秒才能为页面提供服务。无论这是第一个请求还是第 100 个请求。.NET 4.0 应用程序是从旧版 ASP 表单调用的,其中有一个显示 ASP.NET 4.0 应用程序的框架。
我们不能接触 Legacy asp 或 ASP.NET 2.0 应用程序,因为我们不拥有该软件的版权,而只有使用许可证。
任何关于如何加快速度的想法都将受到赞赏。
答案1
为了加快速度,您首先需要了解是什么导致速度变慢。我知道这是显而易见的说法,但您必须首先分析发生了什么。
在这种情况下,我发现自己一直在提出这个建议,您需要下载并运行 Microsoft 的 SysInternals 进程监视器工具 (procmon.exe)。
在 IIS 框上运行它,并设置过滤器以仅监视 w3wp.exe。确保设置了“删除已过滤事件”选项。清除日志,执行(缓慢的)事务,然后停止监视。
扫描日志,并尝试确定正在进行的活动类型。使用“相对时间”和“持续时间”列来了解正在发生的事情以及花费的时间。有时事情会立即显现出来,例如,花费大量时间扫描路径中的 .EXE 或 .DLL,或丢失注册表项。
这可能需要一些时间,但据我所知,这是唯一一款可以为您提供相当于 O/S 数据包嗅探器的工具。说到数据包嗅探器,可能还值得进行 wireshark 跟踪,只是为了确认是 Web 服务器占用了时间。
祝你好运。