none
IIS 7 - Perte de variables de session RRS feed

  • Question

  • Je repose un problème que j'ai vu évoqué sur le forum il y a quelques mois.
    Environnement de travail :
    IIS 7
    ASP.NET
    Contexte : évolution de la version 5 vers la version 7
    J'utilise dans mes pages des variables de session. Avec la version 7 c'est une catastrophe. Elles ne sont reconnues qu'une fois sur deux, ou deux fois sur trois, ou une fois sur cinq... au chargement de page (j'ai une page de test qui initialise au premier chargement des variables de session, puis qui les affiche à chaque rechargement).

    Je ne sait plus comment faire. J'ai seulement remarqué que tout se passe bien à la création d'une première session après le redémarrage du serveur. Mais dès qu'une deuxième session est créée, cela devient erratique.
    Mes caches de sortie sont désactivés. Le pool que j'utilise est recyclé toutes les trois heures.

    J'ai repéré dans des forums que d'autres avaient rencontré ce même problème, mais je n'y ai pas trouvé de solution.
    Le problème est suffisamment grave pour que j'envisage d'abandonner la version 7 de IIS;

    Merci à ceux qui ont un éclairage sur le sujet.
    jeudi 27 août 2009 14:25

Réponses

  • Merci Marius
    J'ai trouvé l'origine du problème : IIS 7 était installé sous Windows XP Pro. En passant sous Windows Server, plus de problème.
    Pourquoi cela ne marche-t-il pas sous XP Pro ? Mystère.
    Botapierre
    mercredi 21 octobre 2009 21:13

Toutes les réponses

  • Salut Botapierre,
    Peux-tu, s'il te plaît, poster le code de la page de test ici?
    Cordialement,
    Marius
    jeudi 27 août 2009 16:32
  • Oui, voilà :
    <%@ Page Language="VB" Inherits="System.Web.UI.Page" Debug="true" %>

    <%@ Import Namespace="System.Data" %>

    <script runat="server">

        Dim utilisat As util.utilisateur     ' utilisateur connecté
        Dim modif As Boolean                ' Autorisation de modification
       
        Private Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
            If IsPostBack Then
                Dim strvariable As String, ch As String
                ch = "<p/>"
                Me.txtNum.Text = (CType(Me.txtNum.Text, Integer) + 1)
                ch = ch + "<b>Tentative</b> : " + Me.txtNum.Text + "<br>"
                ch = ch + "<b>Cookie mode</b> : " + Session.CookieMode.ToString + "<br>"
                ch = ch + "<b>Nb de variables session</b> : " + Session.Count.ToString + "<br>"
                For Each strvariable In Session.Contents
                    ch = ch + "<b>" + strvariable + "</b> : " + Session(strvariable).ToString + "<br>"
                Next
                Me.lblMessage.Text = ch + Me.lblMessage.Text
            Else
                Session.Item("Numero") = 100
                Session.Item("Nom") = "ASP.NET"
                Me.lblMessage.Text = "Initialisation des variables de session"
                Me.txtNum.Text = "1"
            End If
        End Sub
       

        Protected Sub cmdInit_Click(ByVal sender As Object, ByVal e As System.EventArgs)
            Me.lblMessage.Text = ""
        End Sub
    </script>


    <html>
    <head>
        <link href="General.css" type="text/css" rel="stylesheet" />
    </head>
    <body bgcolor="#f5f5f5" leftmargin="0" topmargin="0">
        <form runat="server">
        <div class="normal" id="Menu" style="border-right: #000000 0px; border-top: #000000 5px;
            z-index: 1; left: 268px; background-image: url(Images/fondMenu.jpg); border-left: #000000 1px;
            width: 500px; border-bottom: #000000 1px; position: absolute; top: 5px; height: 26px">
            <table width="525" border="0">
                <tbody>
                    <tr>
                        <td valign="top" width="500">
                            &nbsp;&nbsp;<a title="Recherches bibliographiques par le titre ou multi critères"
                                href="Chercher.aspx">Recherches</a> &nbsp;&nbsp;<a title="Gestion des ouvrages, rapports..."
                                    href="Livre.aspx">Livres</a> &nbsp;&nbsp;<a title="Gestion des articles de revue"
                                        href="ArtRevue.aspx">Articles</a> &nbsp;&nbsp;<a title="Gestion de documents divers (lettres, photocopies...)"
                                            href="Divers.aspx">Divers</a> &nbsp;&nbsp;<a title="Gestion des revues" href="Revue.aspx">Revues</a>
                            &nbsp;&nbsp;<a title="Gestion des documents électroniques (CD-ROM, pages Internet...)"
                                href="DocElectro.aspx">Doc.électro</a> &nbsp;&nbsp;<a title="Correction des auteurs"
                                    href="Auteur.aspx">Auteurs</a> &nbsp;&nbsp;&nbsp;<a title="Liste des documents de Caen ou Nantes"
                                        href="Antenne.aspx">Antennes</a>
                        </td>
                        <td valign="top" width="20">
                            <a title="Aide en ligne" href="AideLivre.htm" target="_blank">
                                <img height="20" src="Images/PointInterrogation.gif" width="20" border="0" /></a>
                        </td>
                    </tr>
                </tbody>
            </table>
        </div>
        <div class="normal" id="user" style="z-index: 2; left: 850px; width: 150px; position: absolute;
            top: 10px; height: 24px">
        </div>
        <div id="Logo" style="z-index: 3; left: 0px; width: 53px; position: absolute; top: 0px;
            height: 35px">
            <a title="Retour à l'accueil" href="../default.asp?id=<%=Session.Item("idUser") %>">
                <img src="../images/CBNB.jpg" width="45" border="0" /></a>
        </div>
        <div id="stats" style="position: absolute; left: 2px; top: 90px; width: 39px; height: 18px;
            z-index: 4">
            <a href="gestionRefer.aspx" title="Gestion des références dans une antenne">Refs</a>
        </div>
        <table cellspacing="0" cellpadding="0" border="0">
            <tbody>
                <tr>
                    <td colspan="2">
                        <img height="58" src="images/fondBiblio1.jpg" width="999" />
                    </td>
                </tr>
                <tr>
                    <td valign="top" width="62">
                        <img src="images/fondBiblio2.jpg" width="68" />
                    </td>
                    <td valign="top" width="900">
                        Test variable de session&nbsp;
                        <asp:TextBox ID="txtNum" runat="server" Height="18px" Width="18px"></asp:TextBox>
                        <br />
                        <asp:Button ID="cmdTest" runat="server" Text="Tester" Width="77px" />
                        &nbsp;&nbsp;
                        <asp:Button ID="cmdInit" runat="server" Text="Init" Width="77px"
                            onclick="cmdInit_Click" />
                        <br />
                        <asp:Label ID="lblMessage" runat="server"></asp:Label>
                        <br />
                    </td>
                </tr>
            </tbody>
        </table>
        </form>
    </body>
    </html>

    jeudi 27 août 2009 16:58
  • Bonjour,

    Pouvez-vous nous indiquer avec précision le protocole de reproduction du problème ? Ainsi que les paramètres utilisés dans IIS 7.0.

    Cordialement
    Gilles TOURREAU - MVP C# - Architecte .NET/Consultant/Formateur
    lundi 14 septembre 2009 19:32
    Modérateur
  • Salut Botapierre,
    Je suis désolé, je n'ai pas vu ton post (je n'ai pas reçu l'alerte).
    J'ai essayé ton code sur Windows Server 2008 et Windows 7 et il affiche toujours
    Numero: 100
    Nom: ASP.NET
    peu importe combien de fois j'ai essayé, ou combien d'utilisateurs sont connectés. J'ai cliqué sur le "Tester" button. Je dois faire une autre chose?
    Je suppose que c'est un problème de configuration du serveur.
    As-tu essayé sur un autre serveur?
    Cordialement,
    Marius
    mardi 22 septembre 2009 08:23
  • Merci Marius
    J'ai trouvé l'origine du problème : IIS 7 était installé sous Windows XP Pro. En passant sous Windows Server, plus de problème.
    Pourquoi cela ne marche-t-il pas sous XP Pro ? Mystère.
    Botapierre
    mercredi 21 octobre 2009 21:13
  • Bonjour,

    Sauf erreur de ma part, il me semble qu'il n'est pas possible qu'IIS 7 soit installé sur XP Pro. La version possible d'installée est IIS 5.1.

    Cordialement
    Gilles TOURREAU - MVP C# - Architecte .NET/Consultant/Formateur
    jeudi 22 octobre 2009 21:01
    Modérateur