title: Fixing slow initial load for IIS
body: <p>IIS has an annoying feature for low traffic websites where it recycles unused worker processes, causing the first user to the site after some time to get an extremely long delay (30+ seconds).</p>
  
  <p>I've been looking for a solution to the problem and I've found these potential solutions.</p>
  
  <p>A. <a href="http://forums.iis.net/t/1176740.aspx" rel="noreferrer">Use the Application Initialization plugin</a></p>
  
  <p>B. <a href="http://weblogs.asp.net/scottgu/archive/2009/09/15/auto-start-asp-net-applications-vs-2010-and-net-4-0-series.aspx" rel="noreferrer">Use Auto-Start with .NET 4</a></p>
  
  <p>C. <a href="https://stackoverflow.com/a/8808855/1080891">Disable the idle-timeout (under IIS Reset)</a></p>
  
  <p>D. <a href="http://msdn.microsoft.com/en-us/library/ms228015%28v=vs.85%29.aspx" rel="noreferrer">Precompile the site</a></p>
  
  <p>I'm wondering which of these is preferred, and more importantly, why are there so many solutions to the same problem? (My guess is they aren't, and I'm just not understanding something correctly).</p>
  
  <p><strong>Edit</strong></p>
  
  <p>Performing <strong>C</strong> seems to be enough to keep my site warmed up, but I've discovered that the real root of my site's slowness has to do with Entity Framework, which I can't seem to figure out why it's going cold. See <a href="https://stackoverflow.com/q/13250679/1080891">this</a> question, which <s>unfortunately hasn't been answered yet</s> has been answered!</p>
  
  <p>I eventually just had to make a <a href="http://social.technet.microsoft.com/wiki/contents/articles/4641.write-an-iis-warm-up-script-for-a-sharepoint-intranet-site-en-us.aspx" rel="noreferrer">warm up script</a> to hit my site occasionally to make sure it stayed speedy.</p>