ASP.NET em servidor Windows 64

Após um longo período estou de volta.

Gostaria de colocar uma dica para quem está trabalhando com desenvolvimento ASP.NET.

Recentemente, fazendo o deploy de um projeto em um servidor de 64 bits, ao rodar a aplicação, que usava uma tabela do MS Access para armazenamento temporário de dados, vi a mensagem “Erro preenchendo <nome da tabela>. O provedor ‘Microsoft.Jet.OLEDB.4.0’ não está registrado na máquina local”. A figura abaixo demonstra a mensagem na janela do browser.

img

Esta mensagem só acontecia quando a aplicação precisava acessar a tabela.

Inicialmente tentei fazer um upgrade o JET mas não deu certo.

Também compilei a aplicação ASP deixando-a com a plataforma “target” como X86 e ainda assim não deu certo.

O que resolveou foi inicialmente compilar a aplicação realmente como X86 e em seguida configurar o IIS para que pudesse executar aplicativos de 32 bits.

Para isso, abra no servidor o gerenciador do IIS. Você precisará de permissão de usuário administrativo. Na janela “Conexões” selecione o nó “Pool de aplicativos” como na figura abaixo.

iis-1 

Em seguida, na janela “Ações” clique em “Definir Padrões do Pool de Aplicativos”. Isto irá abrir a janela abaixo:

iis-2

Marque o campo “Habilitar Aplicativos de 32 Bits” como True.

Pode ser que seja necessário reiniciar o IIS.