2

J'ai beaucoup lu sur le sujet, mais je n'ai pas la solution. J'ai essayé toutes les solutions proposées par la communauté, mais pas le succès.Variable de session ASP perdue IIS 6.0 à 7.5

Je migre un site d'IIS 6.0 à 7.5. Le site dispose d'applications ASP et ASP.NET, donc j'ai défini deux pools différents. Les applications ASP.NET fonctionnent sans problèmes.

Où j'ai les problèmes est avec les applications ASP. Toutes les applications ASP utilisent une autre application dont l'objectif est d'accorder à l'utilisateur. Le problème se produit lorsque l'application utilisateur qui accorde l'autorisation crée une variable session ("accepted") et qu'elle est perdue lors de la redirection. Cette fonctionnalité fonctionnait dans IIS 6.0

J'ai corrigé le problème et confirmé que l'erreur survient lors de la redirection.

Ce que j'ai essayé et vérifié pour résoudre le problème:

  1. Propriétés de la session

    • Activer l'état de session = true
    • Time-out: 00:20:00
    • Paramètres de mode: En cours
    • Paramètres de cookies = Utiliser des cookies
    • Utiliser l'identité d'hébergement forme usurpation d'identité = vérifié
  2. Port pour accéder au site:: 8685

  3. J'ai aussi vérifié le jardinage Web et ce n'est pas activé comme il n'y a que 1 processus de travail ensemble.

Je joins l'écran capture je considère pertinentes

ASP SettingsSession State SettingsASP Pool Settings


J'ai codé une page ASP qui affiche le contenu des variables de session. Avant de rediriger, la variable de session est correctement créée, mais lorsque la redirection a lieu, les informations sont perdues.

Je joins le code ma politique d'entreprise m'a laissé à poster:

response.write("Accepted: " & session("aceptado") & "<br>") 
response.write ("SQL: " & mySQL & "<br>") 
response.write("Accepted: " & session("aceptado") & "<br>") 
dim i,j 
j = Session.Contents.Count 
Response.Write("Session contents: " & j & "<br>") 
Response.Write("Contents: <br>") 
For Each i in Session.Contents 
    Response.Write(i & "<br>") 
Next 

Response.write("isNull: " & IsNull(Session) & "<br>") 
Response.write("¿Aceptado? " & Session("aceptado")) 

Avec le code ci-dessus, le résultat est:

Session correctly created

Le code pour vérifier l'état de la session une fois que la la redirection a lieu est:

<%response.buffer = true 
%> 
<html> 
    <h1>test</h1> 
    <% 
     dim i,j 
     j = Session.Contents.Count 
     Response.Write("Session contents: " & j & "<br>") 
     Response.Write("Contents: <br>") 
     For Each i in Session.Contents 
      Response.Write(i & "<br>") 
     Next 
    %> 
    isNull: <%=IsNull(Session)%> <br> 
    ¿Aceptado?: <%=Session("aceptado")%><br> 
    incidencia : <%=Session("tipoincidencia")%><br> 
    usuario : <%=Session("usuario")%> 
</html> 

Le résu Elle exécution du code ci-dessus:

Test page

La redirection a lieu entre les deux dernières images

+0

Les propriétés 'Session State' n'ont absolument aucune incidence sur l'état de la session ASP classique. Il est spécifique à ASP.Net * (c'est pourquoi dans IIS 7 et au-dessus, il se trouve dans la section ASP.Net). On dirait que dans les propriétés de la session ASP «Nouvel ID sur la connexion sécurisée» est défini sur «True», la redirection passe-t-elle le protocole HTTP à HTTPS peut-être? Voir [bizarrerie de session ASP classique entre HTTP et HTTPS] (http://stackoverflow.com/a/23266202/692942). – Lankymart

+0

Aucun protocole de commutation HTTP vers HTTPS n'a lieu. J'ai essayé de changer le 'Nouvel ID sur la connexion sécurisée' en Faux mais il n'y a pas de différence – Carlos

+1

Appréciez toutes les captures d'écran que vous avez fournies mais sans aucun code * (spécifiquement où la redirection est appelée) * ne peut plus aider. – Lankymart

Répondre

0

Ma solution pour cela est de commencer simplement un appel ajax tous les X (où X est à peu près la moitié du temps pendant lequel la session expire, dans mon cas 7,5min).

Ce n'est pas super propre, mais fait le travail.