É possível executar aplicações web compiladas em .NET 32 bits no IIS do Windows 2003 64 bits.
No site da Micrososft encontramos uma página que traz a execução de um script VBS como forma de configurar o IIS.
Contudo somente a execução deste link não surtiu o efeito desejado (pelo menos no caso que presenciei).
Foi necessário realizar algumas etapas a mais, sendo a mais importante, a reconfiguração do suporte .NET para o servidor IIS.
Abaixo segue a sequência que utilizei para configurar o IIS do Windows 2003 64 bits para que executasse uma aplicação NET compilada em 32 bits.
O script utilizado foi o que encontramos na página da Micrososft. Caso você já tenha o Service Pack 1 do windows 2003 instalado, este script já está presente no seu sistema operacional. Minha forma de executar o script foi a descrita abaixo. Você pode colocar estas linhas em um arquivo de comandos ou mesmo copiar e colar em uma janela de comandos (uma janela DOS aberta Run -> cmd)
%systemdrive%
cd %systemdrive%\Inetpub\AdminScripts
cscript.exe adsutil.vbs set W3SVC/AppPools/Enable32BitAppOnWin64 "true"
pause
Abaixo uma imagem da execução destas linhas de comando :
Obviamente para que possamos executar uma aplicação compilada em 32 bits o ambiente de execução apropriado deve estar disponível. Certifique-se de que você tenha a pasta abaixo em seu PC e que contenha os arquivos típicos da .NET Framework.
%WINDIR%\Microsoft.NET\Framework\v2.0.50727
Caso você não tenha o runtime da versão 32 bits instalado, faça download aqui e instale o runtime.
Este passo talvez não seja necessário caso a instalação do Win 2003 e do IIS esteja sendo feita pela primeira vez.
No caso que presenciei foi necessário porque o IIS já estava configurado para executar aplicações em 64 bits. A única forma que encontrei foi desinstalar todo o suporte para a .NET do IIS e instlar o suporte para a versão 32 bits.
Note que existem diversas opções de instalação do suporte para .NET, consulte o help do aplicativo de configuração do IIS - aspnet_regiis.exe - para maiores informações.
Assim, esta etapa consta de 2 passos :
Basta executar o comando da imagem abaixo :
Agora basta executar um comando similar, mas que instala o suporte 32 bits no IIS. Verifique o help deste utilitário para outras opções de configuração.
Neste momento temos o runtime 32 bits instalado e o IIS já o reconhece, já sabe que ele também está disponível. Mas ele está desabilitado para o IIS. Caso você tenha o suporte a 64 bits ele ainda ele ainda está configurado como plataforma padrão de execução para as Web Server Extensions.
Os passos que executei foi desabilitar a versão .NET 64 bits e habilitar a de 32 bits. A de 32 bits simples de identificar porque traz o "32" no nome da Extension. A de 64 é justamente a que não traz nenhuma referência que não seja mesmo o nome e número da versão da .NET (2.0) desabilite a de 64 bits e habilite a de 32 bits.
Confira a imagem abaixo :
Muito provavelmente o filtro ISAPI já deve estar corretamente configurado e apontando para a DLL correta de 32 bits.
O caminho da DLL de 32 bits é este :
%WINDIR%\Microsoft.NET\Framework\v2.0.50727\aspnet_filter.dll
sendo que o da DLL de 64 bits é este:
%WINDIR%\Microsoft.NET\Framework64\v2.0.50727\aspnet_filter.dll
A configuração ISAPI pode ser acessada com via o botão direito sobre a pasta Web Sites:
Neste ponto o suporte a 32 bits deverá estar ativo e o seu site 32 bits deveria executar sem erros. Pode ser que você obtenha um erro 404 (uma típica página de erro 404 do browser). Caso isso ocorra experimente reiniciar o serviço do IIS para que ele volte a recarregar com as novas configurações.