Possíveis soluções, extraídas dos comentários na postagem no blog de ScottGu (pesquise "8026" na página):
Sugestão de solução 1 (David Taylor)
Adicione estes elementos de código dom RTM ao web.config:
<system.codedom>
<compilers>
<compiler language="c#;cs;csharp" extension=".cs"
type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701"/>
<compiler language="vb;vbs;visualbasic;vbscript" extension=".vb"
type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=\"Web\" /optionInfer+"/>
</compilers>
</system.codedom>
Em seguida, adicione os itens Roslyn e Microsoft.CodeDom.Providers. *. Dll ao diretório BIN.
É fácil de configurar, mas era estranho para mim que o modelo padrão não estivesse configurado para ele se você selecionasse o .NET 4.6 ao criar um novo "Site" no VS 2015 RTM.
Sugestão de solução 2 (Martin)
Além do comentário de David Taylor acima, parece que as configurações system.codedom estão corretas quando um Web App é criado com o TargetFramework como o padrão v4.5.2. Alterar o TargetFramework para v4.6 parece modificar as configurações do compilador do CSharp, de uma maneira que causa um problema.
Minhas soluções alternativas foram as seguintes:
- Arquivo / Novo / Aplicativo Web ASP.NET
- Selecione o modelo "Web API" nos modelos do ASP.NET 4.5.2
- Faça uma cópia do elemento system.codedom (e seu conteúdo) em web.config
- Usando Properties / TargetFramework, defina o Target Framework como 4.6
- Substitua o elemento system.codedom modificado em web.config pela cópia tirada antes de alterar o TargetFramework
- Acertar F5
A página inicial deve carregar conforme o esperado.
Para informações, o conteúdo system.codedom imediatamente após alterar o TargetFramework para v4.6. foi o seguinte (observe o uso do tipo "Microsoft.CSharp.CSharpCodeProvider"):
<system.codedom>
<compilers>
<compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CSharp.CSharpCodeProvider, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701">
<providerOption name="CompilerVersion" value="v4.0"/>
</compiler>
<compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=\"Web\" /optionInfer+"/>
</compilers>
</system.codedom>