Erro 500 site ASP.NET MVC e .NET Framework 4 ou 4.5 - Windows Server 2012


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 sem ir para a internet) é retornado esse erro. E o pior, não há nenhum log de erro no Event Viewer.

Atenção: Erro 500 sempre pode ser erro na aplicação, então sempre verifique se nenhum erro está sendo logado no Event Viewer.

Windows Server 2012

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

Windows Server 2008

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

Comentários