优化IIS7以进行.NET开发和调试

时间:2013-08-07 19:56:39

标签: c# .net windows iis iis-7

似乎我花了近一半的时间在.NET上唠叨我的拇指等待IIS旋转而不是实际开发。

这非常简单:只要我有机会使用代码隐藏文件并刷新,IIS就需要15秒到一分钟才能回收。

有没有办法改善这个?这令人抓狂。

我正在从事网站项目(不是Web应用程序项目),运行Windows 7并在.NET 4框架中工作。我的机器只有几个月的历史,带有SSD,所以我不认为硬件应该成为瓶颈。

另外,我甚至没有在大多数时间实际调试应用程序,尽管运行得更慢。

2 个答案:

答案 0 :(得分:3)

修改

无论您使用何种类型的IIS,加速操作的最佳方法之一是创建RAM驱动器并将TEMP和特别是 ASP.NET Temporary Files文件夹指向它。 ASP.NET临时文件包含页面的已编译二进制文件。 ASP.NET在启动时检查此文件夹,并仅重新编译具有更改的页面。将此文件夹放在RAM驱动器上会使启动时间增加几个数量级。该技术在多篇文章中描述,例如。在“Slash your ASP.NET compile/load time without any hard work

作为额外的奖励,您还可以减少SSD的磨损。

<强>原始

适用于网络应用程序

听起来您已将项目设置为使用Visual Studio Development Server或IIS Express而不是计算机本地的IIS服务。发生这种情况时,Dev Server从零开始会有明显的延迟。

这是新网站项目的默认设置。开发服务器很有用,因为它将项目作为随机可用端口上的根虚拟目录启动。缺点是需要花费很长时间才能启动。

通过更改项目以使用本地IIS并在特定虚拟目录下启动,可以显着加快速度。在这种情况下,服务器已经在运行,唯一需要的是应用程序池的回收。应用程序池回收实际上非常快,除非您在aspx页面中嵌入了 lot 代码,否则您可能不会注意到任何延迟,这需要在每次回收时重新编译。

要更改用于调试的服务器类型,请转到Web应用程序的属性&gt; Web 并在Servers部分中,将选择从Development Server更改为Local IIS。您必须为您的应用程序创建一个虚拟目录,但这可以通过在Project Url文本框中键入所需的URL并按“创建虚拟目录”按钮来轻松完成。

适用于网站项目

IIS Express / Visual Studio Dev Server与本地IIS实例的影响也适用于Web站点项目。基于文件的网站默认使用dev服务器。更改为本地IIS服务的过程是不同的。值得庆幸的是,它在How to: Specify the Web Server for Web Projects in Visual Studio

中有详细描述

答案 1 :(得分:0)

您必须了解网站项目的工作原理。每次更改后,每个文件都会在后台编译成自己的DLL。没有办法改变这一点。

现在,需要多长时间取决于您的代码。你可以采取一些措施来提高速度。您可以清除\ Windows \ Microsoft.NET中的ASP.NET临时文件文件夹,并且可以删除任何未使用的引用或任何未使用的语句。这将减少编译时间。

网站项目实际上并没有得到很好的支持,并且有许多缺点。唯一真正的优势是即时编译,正如你所发现的那样,无论如何都没有那么大的好处。

您可能想阅读这篇文章:

http://msdn.microsoft.com/en-us/library/dd547590.aspx

  

对于新开发,我们建议您选择Web应用程序项目。本主题解释了网站项目有一些优势,但许多选择网站项目的开发人员最终发现缺点超过任何感知优势。此外,随着新的ASP.NET功能的开发,它们并不总是可用于网站项目。例如,Visual Studio 2012之后的下一个Visual Studio版本将具有用于创建Web项目的新工具,并且此新工具仅适用于Web应用程序项目。