title: ASP.NET Core configuration reloadOnChange with IOptionsSnapshot still not responsive
body: <p>I'm using ASP.NET Core 2.0 and I have configuration code like this in the <code>Main</code> method:</p>
  
  <pre><code>public static void Main(string[] args)
  {
      var environment = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT");
      var configuration = new ConfigurationBuilder()
          .SetBasePath(Directory.GetCurrentDirectory())
          .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
          .AddJsonFile($"appsettings.{environment ?? "Production"}.json", optional: true, reloadOnChange: true)
          .AddEnvironmentVariables()
          .AddCommandLine(args)
          .Build();
  }
  </code></pre>
  
  <p>I have the <code>reloadOnChange</code> set to true, and in my controller I am using <code>IOptionsSnapshot</code>;</p>
  
  <pre><code>public HomeController(ILogger&lt;HomeController&gt; logger, IOptionsSnapshot&lt;AppSettings&gt; options)
  </code></pre>
  
  <p>But when I modify the values in my <code>appsettings.json</code>, I have to restart my app every time or the changes are not being picked up just by refreshing the browser. What am I doing wrong? </p>
  
  <p>I've tried to run the app both with console and IIS Express; I've also tried <code>IOptionsMonitor</code>, same thing. What is the difference between <code>IOptionsMonitor</code> and <code>IOptionsSnapshot</code>?</p>