1

This is a generic question. Nevertheless it's still a mystery and needs explanation...

Recently our application was deployed in production with latest code. It's an ASP.NET MVC 3 application using WCF as service and SQL Server for DB. The deployment is automated process and the elevation from DIT, SIT, Stage to Prod is automated too.

After deployment, while testing we found the application in production is not behaving the same way it behaved in other environment. There were functionality mismatch. DIT, SIT and Stage are working as expected but Prod won't. We checked the Dlls in all prod servers they are the latest set. I debugged in DEV and found it working as expected.

Unable to find explanation, we did IISRESET in all prod servers and guess what!.. It started working as expected, no issues till now ... :)

  1. Is there a good explanation why IISRESET solved the issue?
  2. Is IISRESET mandatory after a deployment?. My understanding is even config/dll change will force application recycle and latest dlls will be picked..
  3. Is there any other steps we could have taken? Time was a constraint, we need get the prod boxes up ASAP.
SridharVenkat
  • 656
  • 8
  • 21

2 Answers2

2

You don't say how the automated deployment is done, but depending on the order in which files are copied, the recycle can happen early (because web.config has been overwritten, for example) while there are still other files to be copied. Then you end up with a part old, part new app running.

Will Dean
  • 39,055
  • 11
  • 90
  • 118
1

Broad question but what comes to mind is that caching would be affected by iisreset. Values on static fields/classes would also be affected.

In adding to @Will Dean's answer. During deployment, are you coping an app_offline.htm file and removing it afterwards?

Valamas
  • 24,169
  • 25
  • 107
  • 177