title: The configuration section 'system.web.webPages.razor' cannot be read because it is missing a section declaration
body: <p>I am stuck.. Razor is no longer working in VS2013 and I am getting this message in the browser:  I believe it to be in the message <code>missing a section declaration</code> but I have no idea what to do.. help please!!</p>
  
  <blockquote>
    <p>HTTP Error 500.19 - Internal Server Error
    The requested page cannot be accessed because the related configuration data for the page is invalid.</p>
  
  <pre><code>Module        IIS Web Core
  Notification  Unknown
  Handler       Not yet determined
  Error Code    0x80070032
  Config Error  The configuration section 'system.web.webPages.razor' cannot be read because it is missing a section declaration`
  </code></pre>
  </blockquote>
  
  <p>All the .cshtml files are showing errors for all key words.<br>
  Also getting the warnings out of the web.config:</p>
  
  <blockquote>
    <p>Could not find schema information of the element... <sup>(for about 15 elements)</sup>  </p>
  </blockquote>
  
  <p>I'm running the following versions: </p>
  
  <ul>
  <li>MVC 5.1.1  </li>
  <li>ASP.NET Razor 3.1.1  </li>
  </ul>
  
  <p>Here's the entire web.config:</p>
  
  <pre class="lang-xml prettyprint-override"><code>&lt;?xml version="1.0" encoding="utf-8"?&gt;
  &lt;!--
    For more information on how to configure your ASP.NET application, please visit
    http://go.microsoft.com/fwlink/?LinkId=169433
    --&gt;
  &lt;configuration&gt;
    &lt;configSections&gt;
      &lt;!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --&gt;
      &lt;section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /&gt;
      &lt;sectionGroup name="dotNetOpenAuth" type="DotNetOpenAuth.Configuration.DotNetOpenAuthSection, DotNetOpenAuth.Core"&gt;
        &lt;section name="messaging" type="DotNetOpenAuth.Configuration.MessagingElement, DotNetOpenAuth.Core" requirePermission="false" allowLocation="true" /&gt;
        &lt;section name="reporting" type="DotNetOpenAuth.Configuration.ReportingElement, DotNetOpenAuth.Core" requirePermission="false" allowLocation="true" /&gt;
        &lt;section name="oauth" type="DotNetOpenAuth.Configuration.OAuthElement, DotNetOpenAuth.OAuth" requirePermission="false" allowLocation="true" /&gt;
        &lt;section name="openid" type="DotNetOpenAuth.Configuration.OpenIdElement, DotNetOpenAuth.OpenId" requirePermission="false" allowLocation="true" /&gt;
      &lt;/sectionGroup&gt;
      &lt;!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --&gt;
    &lt;/configSections&gt;
    &lt;connectionStrings&gt;
      &lt;add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=eManager.Web2;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\eManager.Web2.mdf" providerName="System.Data.SqlClient" /&gt;
    &lt;/connectionStrings&gt;
      &lt;system.web.webPages.razor&gt;
          &lt;pages pageBaseType="System.Web.Mvc.WebViewPage"&gt;
              &lt;namespaces&gt;
                  &lt;add namespace="MyCustomHelpers" /&gt;
              &lt;/namespaces&gt;
          &lt;/pages&gt;
      &lt;/system.web.webPages.razor&gt;
    &lt;appSettings&gt;
      &lt;add key="webpages:Version" value="3.0.0.0" /&gt;
      &lt;add key="webpages:Enabled" value="false" /&gt;
      &lt;add key="PreserveLoginUrl" value="true" /&gt;
      &lt;add key="ClientValidationEnabled" value="true" /&gt;
      &lt;add key="UnobtrusiveJavaScriptEnabled" value="true" /&gt;
    &lt;/appSettings&gt;
    &lt;system.web&gt;
      &lt;compilation debug="true" targetFramework="4.5" /&gt;
      &lt;httpRuntime targetFramework="4.5" /&gt;
      &lt;authentication mode="Forms"&gt;
        &lt;forms loginUrl="~/Account/Login" timeout="2880" /&gt;
      &lt;/authentication&gt;
      &lt;pages&gt;
        &lt;namespaces&gt;
          &lt;add namespace="System.Web.Helpers" /&gt;
          &lt;add namespace="System.Web.Mvc" /&gt;
          &lt;add namespace="System.Web.Mvc.Ajax" /&gt;
          &lt;add namespace="System.Web.Mvc.Html" /&gt;
          &lt;add namespace="System.Web.Optimization" /&gt;
          &lt;add namespace="System.Web.Routing" /&gt;
          &lt;add namespace="System.Web.WebPages" /&gt;
        &lt;/namespaces&gt;
      &lt;/pages&gt;
    &lt;/system.web&gt;
    &lt;system.webServer&gt;
      &lt;validation validateIntegratedModeConfiguration="false" /&gt;
  
    &lt;handlers&gt;
        &lt;remove name="ExtensionlessUrlHandler-Integrated-4.0" /&gt;
        &lt;remove name="OPTIONSVerbHandler" /&gt;
        &lt;remove name="TRACEVerbHandler" /&gt;
        &lt;add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" /&gt;
      &lt;/handlers&gt;&lt;/system.webServer&gt;
    &lt;runtime&gt;
      &lt;assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"&gt;
              &lt;dependentAssembly&gt;
                  &lt;assemblyIdentity name="Antlr3.Runtime" publicKeyToken="EB42632606E9261F" culture="neutral" /&gt;
                  &lt;bindingRedirect oldVersion="0.0.0.0-3.5.0.2" newVersion="3.5.0.2" /&gt;
              &lt;/dependentAssembly&gt;
        &lt;dependentAssembly&gt;
          &lt;assemblyIdentity name="DotNetOpenAuth.Core" publicKeyToken="2780ccd10d57b246" /&gt;
          &lt;bindingRedirect oldVersion="0.0.0.0-4.3.0.0" newVersion="4.3.0.0" /&gt;
        &lt;/dependentAssembly&gt;
        &lt;dependentAssembly&gt;
          &lt;assemblyIdentity name="DotNetOpenAuth.AspNet" publicKeyToken="2780ccd10d57b246" /&gt;
          &lt;bindingRedirect oldVersion="0.0.0.0-4.3.0.0" newVersion="4.3.0.0" /&gt;
        &lt;/dependentAssembly&gt;
        &lt;dependentAssembly&gt;
          &lt;assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" /&gt;
          &lt;bindingRedirect oldVersion="0.0.0.0-1.6.5135.21930" newVersion="1.6.5135.21930" /&gt;
        &lt;/dependentAssembly&gt;
        &lt;dependentAssembly&gt;
          &lt;assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" /&gt;
          &lt;bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0" /&gt;
        &lt;/dependentAssembly&gt;
        &lt;dependentAssembly&gt;
          &lt;assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" /&gt;
          &lt;bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0" /&gt;
        &lt;/dependentAssembly&gt;
        &lt;dependentAssembly&gt;
          &lt;assemblyIdentity name="System.Web.WebPages.Razor" publicKeyToken="31bf3856ad364e35" culture="neutral" /&gt;
          &lt;bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0" /&gt;
        &lt;/dependentAssembly&gt;
        &lt;dependentAssembly&gt;
          &lt;assemblyIdentity name="System.Web.Razor" publicKeyToken="31bf3856ad364e35" culture="neutral" /&gt;
          &lt;bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0" /&gt;
        &lt;/dependentAssembly&gt;
        &lt;dependentAssembly&gt;
          &lt;assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" /&gt;
          &lt;bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" /&gt;
        &lt;/dependentAssembly&gt;
        &lt;dependentAssembly&gt;
          &lt;assemblyIdentity name="WebMatrix.Data" publicKeyToken="31bf3856ad364e35" culture="neutral" /&gt;
          &lt;bindingRedirect oldVersion="0.0.0.0-2.0.0.0" newVersion="2.0.0.0" /&gt;
        &lt;/dependentAssembly&gt;
        &lt;dependentAssembly&gt;
          &lt;assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" culture="neutral" /&gt;
          &lt;bindingRedirect oldVersion="0.0.0.0-5.1.0.0" newVersion="5.1.0.0" /&gt;
        &lt;/dependentAssembly&gt;
        &lt;dependentAssembly&gt;
          &lt;assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31bf3856ad364e35" culture="neutral" /&gt;
          &lt;bindingRedirect oldVersion="0.0.0.0-5.1.0.0" newVersion="5.1.0.0" /&gt;
        &lt;/dependentAssembly&gt;
        &lt;dependentAssembly&gt;
          &lt;assemblyIdentity name="Antlr3.Runtime" publicKeyToken="eb42632606e9261f" culture="neutral" /&gt;
          &lt;bindingRedirect oldVersion="0.0.0.0-3.5.0.2" newVersion="3.5.0.2" /&gt;
        &lt;/dependentAssembly&gt;
        &lt;dependentAssembly&gt;
          &lt;assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" /&gt;
          &lt;bindingRedirect oldVersion="1.0.0.0-5.1.0.0" newVersion="5.1.0.0" /&gt;
        &lt;/dependentAssembly&gt;
      &lt;/assemblyBinding&gt;
      &lt;!-- This prevents the Windows Event Log from frequently logging that HMAC1 is being used (when the other party needs it). --&gt;
      &lt;legacyHMACWarning enabled="0" /&gt;
      &lt;!-- When targeting ASP.NET MVC 3, this assemblyBinding makes MVC 1 and 2 references relink
               to MVC 3 so libraries such as DotNetOpenAuth that compile against MVC 1 will work with it.
          &lt;assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"&gt;
              &lt;dependentAssembly&gt;
                  &lt;assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35"/&gt;
                  &lt;bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0"/&gt;
              &lt;/dependentAssembly&gt;
          &lt;/assemblyBinding&gt;
           --&gt;
    &lt;/runtime&gt;
    &lt;entityFramework&gt;
      &lt;defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework"&gt;
        &lt;parameters&gt;
          &lt;parameter value="v11.0" /&gt;
        &lt;/parameters&gt;
      &lt;/defaultConnectionFactory&gt;
      &lt;providers&gt;
        &lt;provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" /&gt;
      &lt;/providers&gt;
    &lt;/entityFramework&gt;
    &lt;system.net&gt;
      &lt;defaultProxy enabled="true" /&gt;
      &lt;settings&gt;
        &lt;!-- This setting causes .NET to check certificate revocation lists (CRL) 
                   before trusting HTTPS certificates.  But this setting tends to not 
                   be allowed in shared hosting environments. --&gt;
        &lt;!--&lt;servicePointManager checkCertificateRevocationList="true"/&gt;--&gt;
      &lt;/settings&gt;
    &lt;/system.net&gt;
    &lt;dotNetOpenAuth&gt;
      &lt;messaging&gt;
        &lt;untrustedWebRequest&gt;
          &lt;whitelistHosts&gt;
            &lt;!-- Uncomment to enable communication with localhost (should generally not activate in production!) --&gt;
            &lt;!--&lt;add name="localhost"/&gt;--&gt;
          &lt;/whitelistHosts&gt;
        &lt;/untrustedWebRequest&gt;
      &lt;/messaging&gt;
      &lt;!-- Allow DotNetOpenAuth to publish usage statistics to library authors to improve the library. --&gt;
      &lt;reporting enabled="true" /&gt;
      &lt;!-- This is an optional configuration section where aspects of dotnetopenauth can be customized. --&gt;
      &lt;!-- For a complete set of configuration options see http://www.dotnetopenauth.net/developers/code-snippets/configuration-options/ --&gt;
      &lt;openid&gt;
        &lt;relyingParty&gt;
          &lt;security requireSsl="false"&gt;
            &lt;!-- Uncomment the trustedProviders tag if your relying party should only accept positive assertions from a closed set of OpenID Providers. --&gt;
            &lt;!--&lt;trustedProviders rejectAssertionsFromUntrustedProviders="true"&gt;
                          &lt;add endpoint="https://www.google.com/accounts/o8/ud"/&gt;
                      &lt;/trustedProviders&gt;--&gt;
          &lt;/security&gt;
          &lt;behaviors&gt;
            &lt;!-- The following OPTIONAL behavior allows RPs to use SREG only, but be compatible
                           with OPs that use Attribute Exchange (in various formats). --&gt;
            &lt;add type="DotNetOpenAuth.OpenId.RelyingParty.Behaviors.AXFetchAsSregTransform, DotNetOpenAuth.OpenId.RelyingParty" /&gt;
          &lt;/behaviors&gt;
        &lt;/relyingParty&gt;
      &lt;/openid&gt;
    &lt;/dotNetOpenAuth&gt;
    &lt;uri&gt;
      &lt;!-- The uri section is necessary to turn on .NET 3.5 support for IDN (international domain names),
               which is necessary for OpenID urls with unicode characters in the domain/host name.
               It is also required to put the Uri class into RFC 3986 escaping mode, which OpenID and OAuth require. --&gt;
      &lt;idn enabled="All" /&gt;
      &lt;iriParsing enabled="true" /&gt;
    &lt;/uri&gt;
  &lt;/configuration&gt;
  </code></pre>