title: Server.ScriptTimeout being set to 30000000 even when debug=false
body: <p>I have an issue with scripts not timing out on a live server running an ASP.NET 4.5 web application.</p>
  
  <p>The web.config for the application has <code>&lt;compilation debug="false" /&gt;</code> and does not have a <code>&lt;httpRuntime executionTimeout="" /&gt;</code> value set.  The machine.config doesn't have any values for either of these.</p>
  
  <p>So theoretically the script should timeout in the default of 110 seconds.</p>
  
  <p>However outputting the value of Server.ScriptTimeout on the live server reveals that the value is 30000000 seconds which is the default value set when <code>&lt;compilation debug="true" /&gt;</code>.</p>
  
  <p>I can confirm that the ScriptTimeout has not been set anywhere in code either.</p>
  
  <p>Is there anywhere else that this value can be set or the  value being overridden somewhere?  Perhaps in IIS somewhere?  I've looked at the IIS configuration and nothing stands out at me.</p>
  
  <p>Many thanks</p>
  
  <p><strong>UPDATE</strong></p>
  
  <p>After following the instructions on Jim Mischel's link (thank for that) decompiling the precompilation assembly running on our live server I've found that the ScriptTimeout of 30000000 is actually placed into the constructor of the WebForm page class.</p>
  
  <pre><code>[DebuggerNonUserCode]
  public ProblemPage_aspx()
  {
      // Initialisation code
      base.Server.ScriptTimeout = 30000000;
  }
  </code></pre>
  
  <p>When running as <code>&lt;compilation debug="false" /&gt;</code> this line of code is ommitted from the class.</p>
  
  <p>From this I can only assume that we're precompiling the application in debug mode.  I'll do some further investigation, but it looks like this may not be an environment configuration issue after all.</p>