IIS7 migrando de problemas de 32 bits para 64 bits

2

No momento, estamos migrando vários sites de um x86 win 2008 para um x64 win 2008. Copiamos o diretório config e o wwwroot do servidor antigo para o novo, mas quando iniciamos o servidor, recebemos um 503 página de erro e no log de eventos são 5 avisos e, em seguida, um erro.

Aviso:

A listener channel for protocol 'http' in worker process '2060' serving application pool 'SiteAppPool' reported a listener channel failure.  The data field contains the error number.

O xml do evento:

<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event"> <System> <Provider Name="Microsoft-Windows-WAS" Guid="{524B5D04-133C-4A62-8362-64E8EDB9CE40}" EventSourceName="WAS" /> <EventID Qualifiers="32768">5139</EventID> <Version>0</Version> <Level>3</Level> <Task>0</Task> <Opcode>0</Opcode> <Keywords>0x80000000000000</Keywords> <TimeCreated SystemTime="2011-04-14T11:10:04.000Z" /> <EventRecordID>334493</EventRecordID> <Correlation /> <Execution ProcessID="0" ThreadID="0" /> <Channel>System</Channel> <Computer>WEBSRV64</Computer> <Security /> </System> <EventData> <Data Name="AppPoolID">SiteAppPool</Data> <Data Name="ProcessID">2060</Data> <Data Name="param3">0</Data> <Data Name="ProtocolID">http</Data> <Binary>7E000780</Binary> </EventData> </Event>

Recebemos 5 desses, mas todos com um número de processo de trabalho diferente.

Depois disso, recebemos este erro:

Application pool 'SiteAppPool' is being automatically disabled due to a series of failures in the process(es) serving that application pool.

Não temos absolutamente nenhum indício de porque esse erro acontece, fizemos uma cópia 1 em 1 do site. Atualmente ainda estamos executando no servidor de 32 bits, mas gostamos de migrar o mais rápido possível. Alguém tem idéia de por que recebemos esse erro?

    
por SynerCoder 14.04.2011 / 13:38

2 respostas

1

Pode ser um monte de coisas, mas algumas coisas me vêm à mente:

  • O site antigo estava usando um ID diferente para o pool de aplicativos, talvez um usuário da máquina local? Se assim for, pode ser algo interno ao próprio aplicativo que não está manipulando o novo ID corretamente.
  • A versão correta do .Net Framework instalado no novo máquina?
  • Você comparou o antigo e o novo pools de aplicativos ponto a ponto usando a visualização Configurações avançadas?

Se você criar um novo site / pool de aplicativos e aceitar as configurações padrão, ele ainda fará isso para o novo site?

    
por 14.04.2011 / 15:03
0

É provável que seja um componente em seu site que não seja compatível com x64. Pode ser um filtro isapi ou possivelmente algum código gerenciado ou uma chamada COM +.

Se ele falhar imediatamente para uma solicitação http, é provável que seja um filtro isapi. Você pode confirmar desativando todos os filtros e testando uma página test.html. Em seguida, adicione as coisas de volta até que ele falhe novamente.

Você tem duas soluções:

  • Mais fácil: execute seu pool de aplicativos no modo de 32 bits. Essa é uma boa configuração de qualquer maneira. Você pode configurá-lo a partir das propriedades avançadas do pool de aplicativos, uma das principais opções. Defina-o como um padrão do pool de aplicativos e futuros pools de aplicativos também serão definidos dessa maneira. No IIS7, você pode aproveitar a alta memória de x64 enquanto ainda executa pools de aplicativos no modo de 32 bits.
  • Como alternativa, ao restringir o componente em questão, obtenha uma atualização do fornecedor.
por 14.04.2011 / 15:06