title: MVC routing requiring ".cshtml" in URL
body: <p>I have an MVC4 website running fine on dev. When trying to publish to production routing doesn't work. The only rule I have is the default:</p>
  
  <pre><code>        routes.MapRoute(
              name: "Default",
              url: "{controller}/{action}/{id}",
              defaults: new { controller = "General", action = "Index", id = UrlParameter.Optional }
          );
  </code></pre>
  
  <p>However, on production server (IIS7.5 - just like dev) any of the following fails on 404:</p>
  
  <pre><code>&lt;domain&gt;/Home
  &lt;domain&gt;/Home/Index
  </code></pre>
  
  <p>Plain <code>&lt;domain&gt;/</code> fails on 403.</p>
  
  <p><strong>NOTE: All this while using <a href="http://haacked.com/archive/2008/03/13/url-routing-debugger.aspx" rel="nofollow">route debugger</a></strong></p>
  
  <p>Playing around I stumbled upon the following curiosity:</p>
  
  <pre><code>&lt;domain&gt;/Home/Index.cshtml/3
  </code></pre>
  
  <p>Actually brought me to the route debugging page, claiming to match on</p>
  
  <pre><code>controller  Home
  action      Index.cshtml 
  id          61 
  </code></pre>
  
  <p>More playing showed that it doesn't matter where the <em>".cshtml"</em> is, it works as long as it's there. e.g. <code>&lt;domain&gt;/.cshtml/Index/4</code> matched</p>
  
  <pre><code>controller  .cshtml 
  action      Index 
  id          4
  </code></pre>
  
  <p>Why would it require a <em>".cshtml"</em> string, and what can I do about it?</p>