Sessões mistas com ASP clássico no IIS 7.5 e no Windows 2008 R2 de 64 bits

1

Recentemente houve um problema com uma atualização do servidor do IIS 6 no Windows 2003 para o IIS 7.5 no Windows 2008 R2 de 64 bits.

Temos vários sites em execução no ASP Clássico. Todos os sites estão em um site específico, por exemplo www.example.com/foo e www.example.com/foobar.

No IIS 6, cada site foi configurado como um diretório virtual e as coisas funcionaram bem. Desde a mudança para a nova configuração, muitos sites parecem ter sessões mescladas. Para ser claro, isso não é um problema de reciclagem do pool de aplicativos; em vez disso, as sessões são preenchidas com informações quando o usuário acessa o site e, enquanto navega, obtém sessões de sites diferentes.

Determinamos isso com base em - alguns clientes ligaram e relataram ter seu carrinho de compras com itens com nomes de itens pertencentes a um site diferente - também nossos próprios testes mostraram que algumas consultas em andamento tentariam trazer produtos de um site diferente

Nós tentamos - desativando o cache dinâmico - converter cada site para ser um aplicativo virtual (se bem entendi, o diretório virtual / conceitos de aplicativos foram alterados / refinado um pouco no IIS 7, embora, para ser honesto, não estou claro qual é a diferença) - várias alterações de pool de aplicativos (usando o .NET 2 framework), modos clássicos e integrados, alterando o modelo de processo para NetworkIdentity), tudo sem sucesso.

A única coisa que não tentamos é alterá-lo para ser executado como um aplicativo de 32 bits.

Não estamos usando apenas cookies http, então quando eu abro um navegador e digito

document.cookie

no console de desenvolvimento do Firefox / Chrome / IE, haverá vários valores de ASPSESSIONID = ... enquanto, anteriormente, creio que havia apenas um.

Finalmente, usamos o JScript do lado do servidor para as páginas ASP clássicas, não o VBScript, portanto, temos código semelhante ao abaixo.

// a conta de login do usuário como um objeto jscript Sessão ("usuário") = {email: "[email protected]", id: 123};

e se executarmos uma linha de código como abaixo:

Response.Write (typeof (Session ("user")))

Quando as coisas estão funcionando corretamente, obtemos "objeto" - como esperado. Quando a Sessão for descartada, a saída será "desconhecida" e também não poderemos acessar os campos dentro do objeto JScript (por exemplo, os campos .email ou .id).

Muito apreciado se alguém puder fornecer dicas sobre como resolver isso, tudo no Google parece apontar para problemas diferentes.

    
por Marcin 22.03.2012 / 06:07

1 resposta

1

Isso ainda soa muito como um problema de pool de aplicativos / reciclagem. Você tem certeza de que estava realmente usando os cookies ASPSESSIONID no IIS6 ou há uma solução personalizada de gerenciamento de sessões com seu próprio cookie?

    
por 24.03.2012 / 00:40