Instalação das ‘SQL Server CE Server Tools’ em Windows Server 2003 x64

Ao procedermos à reinstalação das ‘SQL Server CE 2000 Server Tools 2.0′ num servidor novo de um cliente, ao testarmos a DLL no Internet Explorer…

http://servidor/replicacao/sscesa20.dll

…obtíamos um daqueles erros genéricos do IE quando não consegue visualizar a página. Após desactivar a opção ‘Mostrar mensagens de erro amigáveis’ – ou similar – nas opções do IE, a mensagem passou a ser mais explícita:

%1 is not a valid Win32 application

A mensagem era um pouco estranha, até… ir às propriedades do computador e ver que estava a correr uma versão de 64 bits do Windows Server 2003.

Depois de algum tempo a investigar na Internet, nomeadamente na KB da Microsoft, encontrei algumas pistas: o IIS 6.0 estava a correr em ‘modo de 64 bits’ e como tal não reconhecia esta DLL de 32 bits. Não tendo encontrado nenhuma referência explícita a se este cenário é ou não suportado, ‘segui em frente’ nas minhas investigações, e encontrei um comando que permite colocar o IIS 6.0 x64 a correr aplicações de 32 bits, modificando a metabase do IIS:

cscript %SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1

Depois de um iisreset, o teste ao sscesa20.dll devolveu a tão desejada string :)

SQL Server CE Agent

Nesta altura, constatei que as páginas ASP.net e os web services deixaram de funcionar, pelo que tive de ‘apontar’ o IIS para a versão 32 bits do ASP.net 2.0, com o ‘clássico’ aspnet_regiis -i.

Por agora está tudo a funcionar, mas se por ex. a máquina também tivesse o Exchange 2007 instalado, o cenário podia (do que me lembro de ter visto numa qualquer página que me apareceu à frente dos olhos) ser diferente. Aliás, a empresa que gere a rede e a infraestrutura do cliente pode amanhã chegar à conclusão que esta ‘abordagem’ levou a que algo deixasse de funcionar, é que ao colocar o IIS 6.0 em ‘modo 32 bits’ o mesmo deixa de aceitar aplicações 64 bits a correr no IIS.

No meio de muitas outras páginas, as seguintes 2 da KB foram de extrema utilidade na resolução deste problema:

Windows Server 2003 SP1 enables WOW64 compatibility for 32-bit Web applications in IIS 6.0
http://support.microsoft.com/kb/895976

How to switch between the 32-bit versions of ASP.NET 1.1 and the 64-bit version of ASP.NET 2.0 on a 64-bit version of Windows
http://support.microsoft.com/default.aspx/kb/894435

Como podem ver pela hora a que este post foi colocado online, isto deu àgua pelas barbas… imagino que esta mensagem também possa ser útil para aqueles que pretendam instalar as ‘Server Tools’ do SQL Server CE 2.0 / 3.1 em Windows XP x64.