title: Why is explicit registering of IHttpContextAccessor not required when running in IISExpress?
body: <p>This week I migrated my .net core 1.0 app API to .net core 2.0 app. After the dust settled it was working fine on my local machine, but it was crashing on our development environment. After some considerable troubleshooting, I happened on the <a href="https://github.com/aspnet/Hosting/issues/793" rel="nofollow noreferrer">announcement</a> that we now have to explicitly register <code>IHttpContextAccessor</code> if we wish to use it. Except that this was not an issue while I was testing and running under IISExpress locally. I have now setup IIS Proper on my local environment too, and get the same crash there. </p>
  
  <p>I have carefully looked through my Startup.cs code, and while we do have several cases of environment variable dependent registrations (Dev vs QA), I am confident that there is no usage of a component like Identity on one environment that would not affect the other. In fact, I have to still go back to several of our internal shared components and explicitly add a registration for this service in those where it is required. </p>
  
  <p>What could constitute the difference between the two (IIS vs IISExpress) that would result in an implicit registering of this service?</p>