本地主机上的 IIS 非常慢

本地主机上的 IIS 非常慢

我在 Windows Vista 双核 CPU 上使用 IIS7。第一次访问 WCF 服务或 ASP.NET webform 有时会花费超过一分钟的时间,这对我来说是不可接受的。

我将应用程序配置为使用 Classic .NET 应用程序池,并尝试使用最大工作进程数,首先将其设置为 4,但由于没有得到预期结果,因此将其重新设置为 1。还有其他我可以尝试的方法吗?

答案1

检查 web.config 文件中的编译模式。在开发过程中,您应该在调试模式下运行站点。如果您在发布模式下运行,则每个 aspx 和 ascx 都将被编译成临时程序集,而不仅仅是您点击的页面和控件。另外,将 batch 设置为 false。

<configuration>
    <system.web>
         <compilation debug="true" batch="false" ...>
         ...
         </compilation>
    ...
    </system.web>
    ...

当然,我们并不建议在生产环境中使用这些功能,因为这些变化会减慢生产环境的速度。


另外,检查此论坛主题,您可以在其中找到一些有趣的提示,例如重置 ASP.NET 临时文件文件夹的权限:

我遇到了同样的问题,并按照论坛中提到的方法进行了所有调整,但还是没有效果。我开始怀疑 dll 加载时间缓慢与安全设置有关。看来对 dll 的访问要经过安全检查,这是操作系统的一部分,而不是 VIsual Studio 的一部分。dll 位于您的应用程序的目录中:

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\

为了加快安全检查速度,您需要删除上述目录中应用程序根文件夹上的所有安全设置,或者如果您希望将其应用于您开发的所有 Web 应用程序,则需要删除目录“Temporary ASP.NET Files”上的所有安全设置。

右键单击该文件夹并选择属性->安全

删除所有用户和组。有些用户和组不允许删除,因为它们从其父文件夹继承了权限。您必须先单击“高级”按钮删除继承,然后取消选中“从父文件夹继承...”复选框。然后删除用户或组。任何用户或组的权限复选框都不能为灰色。如果它们为灰色,则表示您没有从其父文件夹删除继承。

从文件夹中删除所有用户和组后,您需要添加以下用户和组:

管理员 用户 ASPNET 网络 网络服务 本地服务

赋予每个帐户完全权限。再次单击“高级”按钮并勾选“替换所有子对象的权限条目...”

答案2

这可能只是 DNS 问题。尝试在访问时使用 127.0.0.1 而不是 localhost。如果可行,则只需将 127.0.0.1 添加到您的 hosts 文件和/或始终通过您的 localhost IP 进行访问。

答案3

这是应用程序构建后您第一次访问它吗?这并不罕见,因为 Web 应用程序需要从 DLL 等中编译内容,并且后续加载速度会更快。

答案4

如果在应用程序启动时发生这种情况,请关闭空闲超时设置应该会有所帮助,至少在您重新启动或 IIS 因其他原因重新启动之前。但这仍然会留下一个问题:为什么您的应用程序需要这么长时间才能启动。

相关内容