如何减少IISRESET在IIS 5.1中开发ASP.NET Web应用程序的需求

时间:2010-02-17 17:20:16

标签: asp.net localhost iis-5 iisreset

我在运行WinXP的开发PC上有一个Web应用程序项目,因此IIS 5.1。我对此网站所做的更改似乎只有在我执行IISRESET后才会“生效”。也就是说,我做了一个源代码更改,重建项目然后启动而不调试(或调试)。除非我介入IISRESET,否则新更改的代码不会“可见”或生效。

顺便说一下,Web应用程序项目的“属性”屏幕上的“Web”选项卡配置为使用项目URL的本地IIS Web服务器:http://localhost/myVirtualDirectory

...

但是在使用VStudio Dev Server时我注意到了同样的问题(即我必须通过访问任务栏托盘区域来停止它,以便查看我的源更改是否生效)。

这是我可以改变的吗?

编辑更新:

如果可能的话,只想清除它。两个答案在下面分开;不知道如何前进。有人说这是预料之中的(IIS 5.1的弱点,这反过来又是WinXP能提供的最好的)。另一个说这不是预期的行为(我倾向于同意,因为这是我在同一个旧的WinXP开发平台上我已经用了很长时间的第一个)。我怀疑它可能是Visual Studio 2008 Web应用程序的“内部”内容,它已从VStudio 2002(ASP.NET 1.1)升级到此新IDE。我试图在每个答案路径下添加评论/问题。谢谢。

7 个答案:

答案 0 :(得分:4)

这根本不是正常行为。 ASP.NET应该自动重新加载放在bin目录中的任何程序集。如果您正在使用动态编译,它也应该在代码隐藏文件中选择新代码。

一,确保使用正确的CodeFile或CodeBehind指令。 CodeFile用于动态编译。

如果您有一个Web应用程序项目并将.cs源文件编译到DLL中,那么请确保您的项目正在将DLL放入正确的目录...这是/ [ApplicationRoot] / bin。

答案 1 :(得分:1)

这不会改变它,但你可以将IISReset作为构建后脚本的一部分。

答案 2 :(得分:1)

我不得不说这不是标准行为。我已经在VS2005中开发了一段时间了,我一直在使用XP,2003及更高版本的系统。但即便在XP上,我也从未发生过这种情况。

去年,我的两位同事仍在使用XP开发我们一直在使用的网络应用程序..我们正在研究在SVN存储库中共享的完全相同的代码库。其中一个有你在这里遇到同样的问题,我们找不到解决方案,我们只是把它保留原样..其他同事的机器工作得非常好(两者都在相同的硬件上)

这是一个悲伤的故事,因为最终他的IIS变得如此混乱以至于他被迫使用VS网络服务器几个月,直到系统管理员同意在他的盒子中重新安装Windows:)

故事的士气?我认为你的Windows / IIS安装搞砸了...尝试从MS获取最新的更新,如果没有其他帮助 - 我建议做一个干净的安装..抱歉,但希望这有帮助......

答案 3 :(得分:1)

您可能需要检查位于此处的注册表项:

  

HKLM \ SOFTWARE \微软\ ASP.NET \ FCNMode

如果您看到此注册表项,请确保它设置为0或大于2.如果它设置为1,ASP.NET将在您构建时不会收到文件更改通知,您将体验到的确切症状描述。每当您构建Web应用程序解决方案时,应用程序应重新启动。如果没有发生,这可能就是答案。

答案 4 :(得分:0)

同样的症状和永久性的内存使用增长一度显示了一些控件因为错误的单例使用而未被清理。我建议对你的应用程序进行一些内存分析。

答案 5 :(得分:0)

我过去经历过类似的问题。什么将始终触发应用程序正确重新加载是web.config中的任何更改。

只需在末尾插入一个空字符串并保存,然后在下一页加载时重新加载Web应用程序。为了我的目的,我创建了一个脚本,在每次构建之后执行它。听起来很简单,但它总能奏效。

答案 6 :(得分:0)

遇到同样的问题并设法找到一个奇怪的答案。

问题:编辑源代码并且IIS不想更新编辑时。

在项目设置中,Web我将服务器更改为使用Visual Studio开发服务器而不是使用IIS Web服务器。

然后用F5运行VS Development Server,这样我可以在SourceCode编辑后看到更改。我离开了设置,但后来使用IIS服务器转到我的主页。现在变化正在按照它应该更新。

因此,当忽略IIS并告诉它不要在项目设置中使用时。 IIS正在获取新的源代码并显示更改。