title: IIS responding with 304 HTTP status to non-conditional requests
body: <p>Sometimes my IIS server starts responding with 304 HTTP status to non-conditional requests. I have yet to determine exactly when this happens, but when it starts all browsers keep getting 304.</p>
  
  <p>This is the request (debugged using fiddler):</p>
  
  <pre><code>GET http://www.example.com/aaa/bbb/GetStaticResult HTTP/1.1
  Host: www.example.com
  User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:28.0) Gecko/20100101 Firefox/28.0
  Accept: */*
  Accept-Language: es-ES,es;q=0.8,en-US;q=0.5,en;q=0.3
  Accept-Encoding: gzip, deflate
  Referer: http://localhost:12345/xxx
  Origin: http://localhost:12345
  Connection: keep-alive
  Pragma: no-cache
  Cache-Control: no-cache
  </code></pre>
  
  <p>And the response:</p>
  
  <pre><code>HTTP/1.1 304 Not Modified
  Cache-Control: public
  Expires: Thu, 30 Apr 2015 09:23:22 GMT
  Last-Modified: Wed, 30 Apr 2014 09:23:22 GMT
  Server: Microsoft-IIS/7.5
  X-Powered-By: ASP.NET
  Date: Wed, 30 Apr 2014 10:33:58 GMT
  </code></pre>
  
  <p>The ASP.NET MVC method is the following:</p>
  
  <pre><code>[HttpGet]
  [OutputCache(Duration = int.MaxValue, VaryByParam = "")]
  public string GetStaticResult()
  {
      return "static";
  }
  </code></pre>
  
  <p>The request hasn't any If-Modified-Since (or similar) header. Shouldn't the server issue a 200 response?</p>
  
  <p>May be related with <a href="https://stackoverflow.com/questions/14862399/getting-a-304-if-there-is-no-if-modified-since-sent">Getting a 304 if there is no If-Modified-Since sent?</a></p>