IISReset背后的谜团

时间:2013-12-11 07:00:52

标签: .net asp.net-mvc-3 wcf c#-4.0 iis-7

这是一个通用的问题。然而,它仍然是一个谜,需要解释......

最近我们的应用程序已在生产中使用最新代码进行部署。它是ASP.NET MVC 3应用程序,使用WCF作为服务,使用SQL Server作为数据库。部署是自动化过程,从DIT,SIT,Stage到Prod的升级也是自动化的。

部署之后,在测试过程中,我们发现生产中的应用程序的行为与其他环境中的行为方式不同。功能不匹配。 DIT,SIT和Stage按预期工作,但Prod不会。我们检查了所有prod服务器中的Dll,它们是最新的。我在DEV中调试并发现它按预期工作。

无法找到解释,我们在所有prod服务器上做IISRESET并猜测是什么!..它开始按预期工作,直到现在都没有问题...... :)

  1. 有没有一个很好的解释为什么IISRESET解决了这个问题?
  2. 部署后是否必须使用IISRESET?我的理解是均匀的 config / dll更改将强制应用程序回收和最新的dll 将被挑选..
  3. 我们可以采取其他措施吗?时间是一个约束,我们需要尽快获得产品盒。

2 个答案:

答案 0 :(得分:2)

您没有说自动部署是如何完成的,但是根据文件的复制顺序,回收可以提前发生(例如,因为web.config已被覆盖),而还有其他文件要被复制。然后你最终得到一个部分旧的部分新应用程序。

答案 1 :(得分:1)

广泛的问题但是我想到的是缓存会受到iisreset的影响。静态字段/类的值也会受到影响。

添加@Will Dean的回答。在部署期间,您是否正在处理app_offline.htm文件并在之后将其删除?