Como fazer com que DLLs antigas sejam executadas em um servidor de 64 bits

Como fazer com que DLLs antigas sejam executadas em um servidor de 64 bits

Estou migrando os sites da minha empresa de um servidor Windows 2003x86 para o Windows 2008x64 que executa o IIS 7.5.

O problema que tenho é que todas as DLLs que estavam funcionando bem no servidor antigo agora apresentam erros sempre que são chamadas. Tudo que recebo é um erro genérico como:

Erro de objeto de servidor 'ASP 0177: 800401f3'

Falha no Server.CreateObject

/pasta/nomedoscript.asp, linha 24

800401f3

A linha que apresenta erros é:

'23 lines of comments  
set A0SQL_DATA = server.createobject("olddllname.Data")  
'the rest of the script 

Já tenho esse site em execução em um App Pool configurado para o modo de 32 bits. Mas, recebo o erro de qualquer maneira.

Alguém já passou por isso? Estou frustrado porque todas as informações que procuro dizem que tudo o que preciso fazer é configurar o pool de aplicativos para ser executado no modo de 32 bits. Eu fiz isso e ainda não está funcionando. O que mais eu poderia verificar?

Responder1

Deaquise encontrou isso:

Este erro significa "Sequência de classe inválida" - em outras palavras, a chamada para CreateObject falhou porque o objeto de nome não pode ser encontrado pelo subsistema OLE. As causas incluem:

Afinal, você realmente não executou o regsvr32 no servidor.

Você executou o regsvr32, mas relatou um erro.

Alguém modificou a segurança em parte do registro que impede o subsistema OLE de ler toda ou parte da árvore HKEY_CLASSES_ROOT.

O nome do objeto que você está tentando criar foi digitado incorretamente ou está incorreto.

Determine se é um problema de permissões

Além disso, como você está migrando de 03 para 08, você instalou o complemento IIS 6 Management Compatibility encontrado na função IIS? Não sou especialista em IIS ou ASP, então espero que isso ajude.

Responder2

O que provavelmente está acontecendo é que sua DLL é uma DLL de 32 bits e os Pools de Aplicativos estão rodando em 64 bits. O que você precisará fazer é alterar o pool de aplicativos onde seu aplicativo está sendo executado para um pool de aplicativos de 32 bits. Consulte enable32BitAppOnWin64 em:http://www.iis.net/ConfigReference/system.applicationHost/applicationPools/add

Você pode fazer isso na UI selecionando o Pool de Aplicativos na lista de AppPools (selecione o nó Árvore) e use as Configurações Avançadas para habilitar isso.

informação relacionada