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

VB.NET Discussion :

Erreur : Tentative de lecture ou d'écriture de mémoire protégée.


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mars 2013
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2013
    Messages : 18
    Par défaut Erreur : Tentative de lecture ou d'écriture de mémoire protégée.
    Bonjour,

    Avec Windows 10 64 bits, j'ai développé sur Visual Studio Community 2019 une application de gestion de Rendez-vous utilisant une base ACCESS Office 365 64 bits. Il y a 15 jours j'ai eu un premier plantage sur cet application
    System.AccessViolationException
    HResult=0x80004003
    Message=Tentative de lecture ou d'écriture de mémoire protégée. Cela indique souvent qu'une autre mémoire est endommagée.
    Source=<Impossible d'évaluer la source de l'exception>
    Arborescence des appels de procédure*:
    <Impossible d'évaluer l'arborescence des appels de procédure de l'exception>

    at System.Data.OleDb.DataSourceWrapper.InitializeAndCreateSession(OleDbConnectionString constr, SessionWrapper& sessionWrapper)
    at System.Data.OleDb.OleDbConnectionInternal..ctor(OleDbConnectionString constr, OleDbConnection connection)
    at System.Data.OleDb.OleDbConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject)
    at System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup, DbConnectionOptions userOptions)
    at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection)
    at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
    at System.Data.ProviderBase.DbConnectionInternal.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
    at System.Data.OleDb.OleDbConnection.Open()
    at MyApp.FRMmain.S_AffRaces() in D:\DEVELOPPEMENTS\VB.NET\MyApp\FRMmain.vb:line 2493
    at MyApp.FRMmain.S_Ouverture() in D:\DEVELOPPEMENTS\VB.NET\MyApp\FRMmain.vb:line 1201
    at MyApp.FRMmain.S_Licence() in D:\DEVELOPPEMENTS\VB.NET\MyApp\FRMmain.vb:line 1798
    at MyApp.FRMmain.FRMmain_Load(Object sender, EventArgs e) in D:\DEVELOPPEMENTS\VB.NET\MyApp\FRMmain.vb:line 277
    at System.EventHandler.Invoke(Object sender, EventArgs e)
    at System.Windows.Forms.Form.OnLoad(EventArgs e)
    at System.Windows.Forms.Form.OnCreateControl()
    at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
    at System.Windows.Forms.Control.CreateControl()
    at System.Windows.Forms.Control.WmShowWindow(Message& m)
    at System.Windows.Forms.Control.WndProc(Message& m)
    at System.Windows.Forms.Form.WmShowWindow(Message& m)
    at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
    ainsi que sur toutes les autres utilisant des bases ACCESS. Cette erreur se produisait sur une instruction 'Connection.Open' avec 'Provider=Microsoft.ACE.OLEDB.12.0' et m'empêchait totalement de travailler. J'ai donc procédé à une réinstallation de Windows (conservant mes données) et réinstallé Office 365 et Visual Studio Community 2019 et après quelques galères j'ai pu refaire fonctionner mon application en choisissant une compilation x64 ou Any CPU avec 'Préférer 32 bits' décochée. Tout a bien fonctionné jusqu'à hier où la même erreur 'System.AccessViolationException' s'est reproduite. Je ne peux plus travailler sur ces applications et je ne pense pas que réinstaller Windows tous les 15 jours soit une solution. Merci donc à tous ceux qui pourraient me venir en aide.

  2. #2
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Bonjour,

    System.AccessViolationException
    Ce n'est pas l'erreur relative au 32/64 bits (le message est alors ± ... non inscrit sur l'ordinateur ...).

    Cette erreur ressemble davantage à une tentative d'ouverture sur une connexion déjà ouverte, n'oublies-tu pas de bien fermer les connexions quand elles ne sont plus nécessaires et de détruire avec DISPOSE ce que tu as instancié avec NEW ?

    Bon chance ...

  3. #3
    Membre averti
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mars 2013
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2013
    Messages : 18
    Par défaut
    Bonjour,
    Merci de cette réponse rapide. Effectivement, la compilation en 32 bits donnait à la création de la connexion un message d'erreur comme quoi le provider n'était pas inscrit sur l'ordinateur. Mais dans mon cas en 64 bits ou en Any CPU avec 'Préférer 32 bits' décochée, c'est l'ouverture de la connexion qui est refusée. J'ai donc balayé et détruit tous les fichiers *.laccdb qui trainaient sur mon ordi et cela n'a rien changé. De toutes façon il me semble que toutes les connexions sont closes quand on éteint l'ordinateur et l'erreur se produit quand même à l'ouverture suivante. De plus j'ai écrit un petit programme qui ne fait que créer et ouvrir la même connexion à la même base de données et il fonctionne parfaitement. En parcourant d'autres posts sur ce problème j'ai vu que quelqu'un l'avait résolu avec une chaîne de connexion
    1- Regroupement de la valeur DEFAULT vers la valeur EnableAll
    2- Persist security Info de False vers True
    Je ne sais pas comment intégrer la valeur DEFAULT dans la chaîne de connexion, mais le paramètre 'Persist security Info=True' n'a rien résolu.
    Mon problème reste donc entier.

  4. #4
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Bonjour,
    Si un autre projet qui ne fait que l'ouverture et fermeture de la DB fonctionne sans erreur, recopie ses codes dans ton projet à problèmes, à la place de ses codes actuels.
    Cela doit fonctionner sans modifier la chaîne de connexion.
    De plus, pour une DB Access, VS peut te créer la chaine de connexion et la tester dans l'explorateur de serveurs.
    J'ai pas beaucoup de temps ce soir mais informe-moi quand même ...

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 16
    Par défaut
    Les 3 premières lignes de ton erreur sont intéressantes, car je ne suis pas sûr que ton problème vienne réellement de ton application.

    Si tu fais une recherche sur le code erreur mentionné, tu tomberas sur la page suivante qui pourrait t'aider :
    https://answers.microsoft.com/fr-fr/...ddf1225?page=1

Discussions similaires

  1. Réponses: 4
    Dernier message: 27/05/2016, 12h48
  2. Tentative de lecture ou d'écriture de mémoire protégée
    Par neon90 dans le forum Visual Studio
    Réponses: 3
    Dernier message: 03/11/2012, 12h18
  3. Réponses: 2
    Dernier message: 09/07/2010, 13h31
  4. Réponses: 5
    Dernier message: 25/01/2010, 11h35
  5. Réponses: 3
    Dernier message: 30/06/2009, 15h45

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