Na depuração do programa, às vezes preciso saber quantas variáveis de sessão são usadas e qual é o seu valor? Como o objeto de sessão fornece uma coleção chamada conteúdo, podemos atingir a meta através da ... cada loop
Dim strname, ILOOP
Para cada strname em session.contents
Response.Write strName & - & session.Contents (strname) & [BR]
Próximo
Em circunstâncias normais, o código acima pode funcionar bem. Mas quando a variável da sessão é um objeto ou uma matriz, os resultados da impressão estão incorretos. Dessa forma, modificamos o código da seguinte maneira:
'Primeiro veja quantas variáveis de sessão são usadas?
Response.write existem & session.contents.Count & _
Variáveis de sessão <p>
Dim strname, ILOOP
'Use para cada um para verificar session.contents
'Se a variável da sessão for uma matriz?
Se Isarray (sessão (strname) então
'Cada elemento de uma matriz de impressão circular
Para ilop = lbound (sessão (strname)) para ubound (sessão (strname))
Response.Write strname & (& ilop &) - & _
Sessão (strname) (ilop) & <br>
Próximo
Outro
'Em outros casos, basta imprimir o valor da variável simplesmente
Response.Write strname & - & session.Contents (strname) & <br>
Final se
Próximo
As variáveis de sessão às vezes não podem funcionar, por quê? Existem muitas possibilidades: primeiro, se o cliente não permitir que os cookies operem, a sessão falhará. Porque a sessão depende de cookies. Segundo, a sessão tem a configuração do tempo de falha. As configurações padrão são de 20 minutos. Você pode modificar assim: Web Diretory-> Propriedades-> Diretório Virtual-> Configurações do Aplicativo-> Configuração-> Opções do aplicativo> Hora da sessão ou escreva este código: session.tim eout = 60. Terceiro, a sessão está relacionada ao aplicativo Web específico. Se o usuário navegar de /products/default.asp para /jobs/default.asp, também poderá causar a re -criação da sessão. Como limpar uma variável de sessão que não precisa mais, mas não faz com que a sessão falhe? Em Asp3.0: session.contents.Remove Nomes de variáveis podem ser limpos para remover uma variável. Em asp2.0: defina sessão (nome da variável) = nulo para remover variáveis. No Asp3.0, session.contents.removeall pode limpar todas as variáveis de sessão de session.abandon. O que significa o topo da página ASP? O IIS usa uma tecnologia chamada rastreamento de sessão para garantir que cada variável de sessão esteja disponível em cada página. Quando um usuário visita uma determinada página do ASP, o IIS primeiro preparará cada variável de sessão para esta página, o que, é claro, terá efeitos de desempenho. (O custo do uso da variável da sessão é sempre muito alto!) Se você tiver 100 páginas e apenas 5 páginas são usadas para sessão e, para o desempenho geral, você só precisa defini -lo nessas 5 páginas:
< %@ EnableSessionState = true %>
E outras páginas estão definidas como:
< %@ EnableSessionState = false %>