localhost上的IIS非常慢

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

我将应用程序configuration为使用Classic .NET应用程序池,并尝试使用最大工作进程进行播放,首先将其设置为4,但将其恢复为1,因为它没有预期的结果。 还有什么我可以尝试的吗?

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

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

当然,这些不推荐用于生产环境,这些变化将会减慢生产环境。


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

我有同样的问题,并做了所有在这个论坛上提到的调整,但没有帮助。 我开始怀疑dll的加载速度慢,与安全设置有关。 看来,对DLL的访问是通过作为操作系统一部分的安全检查,而不是VIsual Studio的一部分。 这些dll位于您的应用程序的目录下:

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

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

用鼠标右键单击文件夹,然后select“属性” – >“安全”

删除所有用户和组。 有些人不允许被删除,因为他们从他们的父文件夹inheritance他们的权限。 您必须先通过单击“高级”button来删除inheritance,然后取消选中“从父项inheritance…”checkbox。 然后删除用户或组。 不能有任何用户或组的权限checkbox变灰。 如果它们变灰,就意味着你没有从父母那里去除遗产。

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

pipe理员用户ASPNETnetworkingnetworking服务本地服务

给每个这些帐户完全许可。 再次单击“高级”button,然后勾选“replace所有子对象上的权限条目…”

这可能像DNS问题一样简单。 访问时请尝试使用127.0.0.1而不是本地主机。 如果这样做,那么只需将127.0.0.1添加到主机文件中,并/或始终通过本地主机IP进行访问。

这是否仅仅是您在构build应用程序后第一次访问? 这并不罕见,因为Web应用程序需要从DLL等中编译东西,而且在后续的加载中会更快。

如果在应用程序启动时发生这种情况,closures空闲超时设置应该会有所帮助,至less在重新启动或IIS因其他原因而重新启动之前。 尽pipe如此,这仍然会为您的应用程序为何要花费这么长时间才能启动。