Pergunta

Espero que alguém possa esclarecer esse comportamento para mim e explicar como o ASP.NET está decidindo quando tratar algo como uma nova sessão.

A) No Internet Explorer, carrego o site ASP.NET em questão. Começa uma nova sessão.
B) Se eu for para o arquivo de menu - nova janela ... ele permanece na mesma sessão.
C) Se eu lançar uma nova instância do Internet Explorer e carregar a mesma página, ele iniciará uma nova sessão.

Estou confuso com a etapa C. Espero que seja a mesma sessão com base no meu IP remoto.
O que o IIS / Asp.net está fazendo para decidir que esta é uma nova sessão? Está olhando para a minha porta remota que a nova instância do IE está usando? Quando você levanta uma nova janela com arquivo - novo, ele usa a mesma porta remota que o pai.

Foi útil?

Solução

As sessões no IIS/Asp.net são baseadas em cookies com um escopo de sessão, o que significa que eles são destruídos quando o navegador está fechado e, aparentemente, eles não são compartilhados em diferentes processos do Internet Explorer.

Quando você abre uma nova janela do navegador com arquivo> nova janela, a janela será tratada pelo mesmo processo que o primeiro (ou seja, o mesmo iexplorer.exe). Quando você for lançado no menu Iniciar, obtém um novo processo e agora terá dois iexplorer.exe no gerenciador de tarefas. Eu acho que é apenas o IE 7 que gera vários processos.

Como nota lateral, o IE 8 terá um único processo por guia / janela, como o Google Chrome. Não sei se esses navegadores compartilham cookies de sessão entre os processos, mas certamente é algo a ter em mente ao testar o uso de um desses navegadores.

Outras dicas

Por padrão, o ASP.NET rastreia as sessões através de cookies. Uma nova instância do IE não possui o cookie da sessão, resultando em uma nova sessão. No entanto, o uso do arquivo -> nova janela de uma janela IE existente criará uma nova janela com os mesmos cookies que o "pai", permitindo que o ASP.NET use a sessão existente.

Eu me pergunto se a nova instância do IE teria os mesmos cookies que acontecem no caso B, onde, embora seja uma nova janela, ele está usando o mesmo processo. Geralmente, está no cookie ou na consulta que existe um valor usado para mapear sessões para vários clientes.

Parece que os dados da sessão estão sendo armazenados em cache por processo. A) eb) existem no mesmo processo, enquanto o lançamento de uma nova instância do IE estará criando um novo processo.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top