Erro 500 ao acessar um site ASP.NET MVC 3 ou 4 utilizando .NET Framework 4 ou 4.5 em servidor Windows Server 2012?
O cenário é o seguinte, você fez os seguintes passos:
E quando você acessa o site, você recebe o erro:
500 - Internal server error
Mesmo acessando o site pelo browser do próprio servidor (você pode adicionar o domínio no arquivo de hosts para garantir que o acesso está sendo feito local) é retornado esse erro. E o pior, não há nenhum log de erro no Event Viewer.
Atenção: Erro 500 normalmente é um erro de condificação ou configuração da aplicação, então sempre verifique se nenhum erro está sendo logado no Event Viewer.
No Windows Server 2012, ao executar esse comando (aspnet_regiis -i), você recebe a seguinte mensagem de erro:
Microsoft (R) ASP.NET RegIIS version 4.0.30319.17929
Administration utility to install and uninstall ASP.NET on the local machine.
Copyright (C) Microsoft Corporation. All rights reserved.
Start installing ASP.NET (4.0.30319.17929).
**This option is not supported on this version of the operating system.
Administrators should instead install/uninstall ASP.NET 4.5 with IIS8 using the “Turn Windows Features On/Off” dialog,
the Server Manager management tool, or the dism.exe command line tool. **
For more details please see http://go.microsoft.com/fwlink/?LinkID=216771.
Como diz a mensagem de erro e esse artigo: http://support.microsoft.com/kb/2736284, você precisa utilizar o comando dism para habilitar a Feature do .NET Framework 4 ou 4.5 no Windows Server 2012.
Execute o seguinte comando no Prompt:
$ dism /online /enable-feature /featurename:IIS-ASPNET45
Verifique se nenhum erro ocorreu.
Pode ser que ocorra o seguinte erro:
The operation is complete but IIS-ASPNET45 feature was not enabled.
A required parent feature may not be enabled. You can use the /enable-feature /a
ll option to automatically enable each parent feature from the following list. I
f the parent feature(s) are already enabled, refer to the log file for further d
iagnostics.
IIS-ISAPIFilter, IIS-ISAPIExtensions, IIS-NetFxExtensibility45
The DISM log file can be found at C:\Windows\Logs\DISM\dism.log
Se isso ocorrer, então utilize os seguintes comandos:
$ dism /online /enable-feature /featurename:IIS-ISAPIFILTER
$ dism /online /enable-feature /featurename:IIS-ISAPIExtensions
$ dism /online /enable-feature /featurename:IIS-NetFxExtensibility45
E novamente o comando:
$ dism /online /enable-feature /featurename:IIS-ASPNET45
Depois, teste o site novamente no Browser
No Windows Server 2008, era comum resolver esse tipo de problema apenas registrando o .NET Framework no IIS. Esse erro sempre acontecia quando IIS era instalado depois do .NET Framework.
Bastava abrir um prompt de comando, ir até a pasta onde o .NET Framework estava instalada e executar o comando:
$ cd C:\Windows\Microsoft.NET\Framework64\v4.0.30319
$ aspnet_regiis -i