Eu iria desinstalar e reinstalar o ASP.NET. Eu tive problemas ocorrem depois de instalar o .NET Framework que eu faço isso quase rotineiramente agora.
Para desinstalar:
C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ aspnet_regiis.exe -ua
Para reinstalar:
C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ aspnet_regiis.exe -i
Se você precisar executar aplicativos de 32 bits, também será necessário executar o aspnet_regiis na pasta C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319. Observe que executar a reinstalação afetaria outros aplicativos da Web do ASP.NET se houvesse alguma execução.
Como o problema ocorre tão cedo, pode ser útil habilitar o log do .NET Framework Fusion. Isso é projetado para fornecer informações detalhadas sobre o que está ocorrendo durante o carregamento de assemblies.
Se todos os assemblies estiverem carregando ok, eu usaria o Process Monitor para obter um rastreamento. Isso pode apontar você na direção certa para o que estava fazendo no momento do fracasso.
Se for um problema de um assembly ausente, você pode determinar quais assemblies seu aplicativo precisa, inspecionando o manifesto. Isso pode ser feito com ildasm.exe (IL Disassembler) ou ILSpy.
Eu vi muitos aplicativos MVC travarem na inicialização com uma mensagem de erro insignificante quando introduzidos em um novo servidor porque um assembly (dll) existia em desenvolvimento ou teste, mas não no novo servidor. Se for esse o caso, pode ser um dos seguintes assemblies que precisam ser copiados para a pasta bin do site:
Microsoft.Web.Infrastructure.dll
System.Net.Http.dll
System.Net.Http.Formatting.dll
System.Net.Http.WebRequest.dll
System.Web.Extensions.dll
System.Web.Helpers.dll
System.Web.Http.dll
System.Web.Http.SelfHost.dll
System.Web.Http.WebHost.dll
System.Web.Mvc.dll
System.Web.Optimization.dll
System.Web.Providers.dll
System.Web.Razor.dll
System.Web.WebPages.Deployment.dll
System.Web.WebPages.dll
System.Web.WebPages.Razor.dll
Quando você instala o msi da ASP.NET MVC, normalmente ele copia muitos desses arquivos para uma pasta em C: \ Arquivos de Programas x86 ou em C: \ Windows \ winsxs em algum lugar (cache global de assemblies).
Observe que esse problema também pode ocorrer se o fornecedor estiver assinando seus assemblies, mas eles estão assinados com atraso. Isso também seria revelado no log do Fusion. Uma descrição desse sintoma está aqui:
Atrasar a assinatura de uma assembléia pelo link