IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

Erreur quand je mets un objet automation en session


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de WebPac
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    947
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 947
    Par défaut Erreur quand je mets un objet automation en session
    Bonjour,

    j'essaie de faire un site Web en ASP.NET qui utilise des objets non managés COM.
    Je mets un objet COM en session puis le réutilise plus tard dans le site et parfois j'ai un message d'erreur (mais ce n'est pas systématique) :
    l'accès à cet emplacement de la mémoire n'est pas valide Exception de HRESULT
    J'ai tracé s'il est null et ce n'est pas le cas. J'ai aussi tracé s'il est détruit et son destructeur n'est pas non plus appelé.
    Si je fais une garbage collection, cela ne bugue pas lors de la collection mais le bug continue à se reproduire aléatoirement.

    Je pense que quelquechose m'échappe dans l'utilisation des objets non managés utilisés avec la session mais je ne vois pas quoi.

    Merci pour votre aide.

  2. #2
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    Salut,

    En web il est préférable de se passer des variables de session. C'est pratique, mais limité en espace, peut être effacé de la mémoire après un certain temps ou un redémarrage du processus de IIS, etc.

    En as-tu vraiment besoin ou c'est juste du confort?

    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  3. #3
    Membre éclairé Avatar de WebPac
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    947
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 947
    Par défaut
    J'ai du mal à imaginer de mettre cette variable ailleurs que dans la session en fait car elle dépend du user logué.
    De plus, il n'y a pas de problème lors du timeout de la session car le relogin automatique recharge la variable et la remet en session.

    En fait, après différents tests, je pense que c'est à cause d'une requête asynchrone (en ajax donc) qui est trop longue à être traitée et du coup le navigateur abonne après un timeout.

    Et quand l'utilisateur fait une seconde requête, on dirait que la variable automation en session est toujours en cours d'utilisation dans l'ancien thread, ce qui engendre cette erreur.

  4. #4
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    Ce serait intéressant que tu nous donnes un peu plus de détails sur la façon dont tu t'y prends. Quel est cet objet COM? Les objets non managés sont un peu délicats à utiliser. C'est un peu comme si tu voulais mettre un fichier texte ou une connexion SQL en session.
    "Winter is coming" (ma nouvelle page d'accueil)

  5. #5
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Par défaut
    Citation Envoyé par Immobilis Voir le message
    En web il est préférable de se passer des variables de session
    Immobilis, si tu ne les utilises pas en web, tu les utilises où ?
    Je suis d'accord sur le fait qu'il ne faut pas en abuser, mais les variables de session sont quand même très utiles...

  6. #6
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    Citation Envoyé par calagan99 Voir le message
    Immobilis, si tu ne les utilises pas en web, tu les utilises où ?
    Autant que possible, nulle part Comme je dis, c'est préférable Selon les cas il y a souvent des alternatives. Dans le cas de WebPac j'ai pas assez de détails.

    Pourquoi j'aime pas les variables de session? Parce que on ne sait jamais ce qu'on a mis dedans. C'est pas explicite, l'état des variables est incertain, c'est fourre-tout.

    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  7. #7
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Par défaut
    Et donc, tu assures comment la persistance des données dans une appli Web ?
    Le cache, le viewstate ?

    Je sais que, dans la mesure du possible, il faut faire en sorte de ne pas en abuser. Mais je ne comprends définitivement pas cette tendance au "Session is evil".
    As-tu des exemples ou informations sur les raisons pour lesquelles il faut éviter de les utiliser ?

    Attention, je pose la question, je ne dis pas que stocker un objet COM en session est une idée judicieuse

  8. #8
    Expert confirmé

    Avatar de Philippe Vialatte
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2004
    Messages
    3 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 3 029
    Par défaut
    Mais je ne comprends définitivement pas cette tendance au "Session is evil".
    As-tu des exemples ou informations sur les raisons pour lesquelles il faut éviter de les utiliser ?
    Je ne sais pas quelles raisons poussent Immo a ne pas utiliser la session, mais:
    - si elle est in process, elle peut être détruite a tout moment
    - si on stockes de gros objets dedans, ils ont tendance a monter dans les niveau du GC, a ne plus être collectés->fuite mémoire et crash serveur
    - si elle n'est pas in process, trop de développeurs oublient de supprimer de la session les variables dont ils n'ont plus besoin -> OutOfMemory

    Perso, j'utilise des sessions, mais dans des cas limités:
    - stockage de types "simples" (sauf cas exceptionnel, a documenter)
    - écriture de wrapper autour des accesseurs (comme cas, pas de problème de faute de frappe, et si c'est bien fait, pas de problème de conversion)
    - quand c'est une variable qui doit effectivement aller en session (durée de vie longue, commune a toutes les pages de l'application)

    Mon Blog

    The Cake is still a lie !!!



    Vous voulez contribuer à la rubrique .NET ? Contactez-moi par MP.
    Vous voulez rédiger des articles pour la rubrique .NET ? Voici la procédure à suivre.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 8
    Dernier message: 28/05/2013, 15h32
  2. [AC-2007] Erreur:L'objet ne contient pas d'objet Automation
    Par sophie) dans le forum Access
    Réponses: 3
    Dernier message: 13/01/2012, 21h50
  3. [AC-2007] Erreur : pas d'objet automation "Layout"
    Par atech dans le forum IHM
    Réponses: 1
    Dernier message: 26/09/2011, 15h21
  4. Réponses: 4
    Dernier message: 15/05/2009, 20h00
  5. Message Erreur d'objet Automation
    Par Syrrus dans le forum IHM
    Réponses: 1
    Dernier message: 08/02/2008, 09h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo