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 :

Partager une BDD Access entre un site ASP.NET et un logiciel de gestion


Sujet :

ASP.NET

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 46
    Points : 15
    Points
    15
    Par défaut Partager une BDD Access entre un site ASP.NET et un logiciel de gestion
    Bonjour à tous,

    J'utilise une même BDD Access entre mon logiciel de gestion interne (VB.NET) et mon site web (ASP.NET/VB.NET).
    Lorsque le logiciel est fermé, mes pages s'ouvrent sans difficulté.
    Par contre, dès que le logiciel est ouvert, les pages web qui consultent la BDD renvoient une erreur "le fichier est en cours d'utilisation".

    Est-ce que quelqu'un aurait une idée d'où cela pourrait provenir?

    Merci

  2. #2
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 742
    Points
    9 742
    Billets dans le blog
    3
    Par défaut
    C'est de l'ASP et du VB ? Ou de l'ASP.NET et du VB.NET ?

    C'est important de le préciser, car tu n'es peut-être pas dans le bon forum...

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 46
    Points : 15
    Points
    15
    Par défaut
    Oui pardon, c'est bien ASP.NET et VB.NET

  4. #4
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 742
    Points
    9 742
    Billets dans le blog
    3
    Par défaut
    Merci pour la précision, tu noteras que j'ai édité ton message initial

    Je vois deux possibilités à priori : soit ton programme de gestion ouvre la base de données en mode exclusif, soit il s'agit d'un problème de permissions au niveau du répertoire qui contient la base de données.

    La plupart du temps, il s'agit de la seconde possibilité. D'après la KB289681, Access a besoin de créer un fichier de lock .LDB ou .LACCDB dans le même répertoire que la base de données. Ce fichier permet à plusieurs utilisateurs d'ouvrir la base en même temps.

    Si l'utilisateur qui veut accéder à cette base de données n'a pas les droits de Création sur le répertoire, il se prend l'erreur que tu obtiens. Donc dans ton cas, il faut que tu regardes quel est l'utilisateur utilisé par l'application pool de ton site dans IIS, et il faut lui donner les droits appropriés.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 46
    Points : 15
    Points
    15
    Par défaut
    Merci pour l'edit et ta réponse

    Comme j'héberge le site avec un serveur IIS sous Windows Server 2008, l'utilisateur qui doit avoir les droits dans le dossier "App_Data" qui contient la BDD.mdb est "Service Réseau".

    C'est fait et cela fonctionne bien car les gridview se remplissent correctement lorsque les pages sont chargées.

    Par contre, lorsque le logiciel est ouvert par au moins un utilisateur (il est multi-utilisateur), et qu'en effet le ficher BDD.ldb apparait, les pages qui utilisent la BDD affichent une erreur "le fichier est déjà en cours d'utilisation".

    C'est fou parce que d'autres utilisateurs peuvent accéder à la BDD par le logiciel dans le même temps, mais pas le site web..

  6. #6
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 742
    Points
    9 742
    Billets dans le blog
    3
    Par défaut
    Peut-on voir la chaîne de connexion utilisée par ton programme VB.NET ainsi que celle de ton site Web ?

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 46
    Points : 15
    Points
    15
    Par défaut
    Oui les voilà :

    - Pour le site :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     <asp:AccessDataSource 
                        ID="CategoryArtBDD" 
                        runat="server" 
                        DataFile="~/App_Data/BDD.mdb"
                        SelectCommand="SELECT [TYPE_REF_FOURN], [TYPE_ART_LIB], [TYPE_ART_PV_HT], [TYPE_ART_PV_TTC], [CAT_ID], [CON_RS], [TYPE_ART_IMG] FROM [TYPE_ARTICLE], [CONSTRUCTEUR] WHERE (([CAT_ID] = ?) AND ([TYPE_ART_TYP] = ?) AND ([CONSTRUCTEUR].CON_ID=[TYPE_ARTICLE].CON_ID)) ORDER BY [TYPE_ART_PV_TTC]">
                        <SelectParameters>
                        <asp:QueryStringParameter Name="CAT_ID" QueryStringField="CAT_ID" DefaultValue="ordinateurs portables" Type="String"/>
                        <asp:Parameter Name="TYPE_ART_TYP" DefaultValue="actuel" Type="String"/>
                        </SelectParameters>
                    </asp:AccessDataSource>
    - Pour le logiciel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     Public Sub access_connexion()
            'Instanciation d'un objet Connexion
            laConnection = New OleDbConnection()
            'Donner à la propriété ConnectionString les paramètres de connexion
            laConnection.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source='Z:\BDD.mdb';"
            'Ouvrir la connexion
            laConnection.Open()
        End Sub

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 46
    Points : 15
    Points
    15
    Par défaut
    Salut à tous,

    J'ai essayé de rajouter des autorisations supplémentaires dans le dossier commun App_Data mais ça ne change rien.

    J'ai testé l'accès depuis plusieurs adresses IP distinctes au site internet et ça fonctionne bien, idem pour plusieurs utilisateurs connectés à la BDD par le logiciel, mais lorsque le logiciel est connecté à la BDD, le site internet n'a plus d'accès..

    C'est bizarre parce que le BDD.ldb est bien là pourtant.. et c'est son travail de rendre la base multi-utilisateurs.. bizarre bizarre

  9. #9
    Expert éminent
    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
    Points : 9 512
    Points
    9 512
    Par défaut
    Salut,

    Je te suggère alors d'envisager la migration de tes données dans une base SQL. Les fichiers de données sont confrontés à ce type de problèmes. Cela m'est arrivé souvent de bloquer le fichier.




    Si ce n'est pas dans ton planning:
    A retenir:
    A database can be open in only one mode at a time. The first user to open the database determines the locking mode used while the database is open
    A+

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 46
    Points : 15
    Points
    15
    Par défaut
    Salut,

    Merci beaucoup pour les liens.
    Je viens de tout lire et de faire les tests, mais malheureusement tu as raison.. ça ne fonctionne pas.
    Devoir passer de ma base access à SQL server ça me fend le coeur.. tout ce travail à refaire.. quelle tristesse

    Merci en tout cas pour ton aide.

  11. #11
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 742
    Points
    9 742
    Billets dans le blog
    3
    Par défaut
    Hello, tu n'as pas forcément besoin de tout refaire, SQL Server embarque un assistant qui permet d'importer une base Access et de la convertir en base SQL Server.

    Mais il faut plutôt voir ça comme un mal pour un bien

  12. #12
    Expert éminent
    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
    Points : 9 512
    Points
    9 512
    Par défaut
    Une dernière solution à tester: http://office.microsoft.com/en-us/ac...010166605.aspx

Discussions similaires

  1. Réponses: 11
    Dernier message: 13/03/2013, 00h55
  2. Réponses: 3
    Dernier message: 11/11/2009, 16h25
  3. Créer une bibliothèque à partir d'un site ASP.NET
    Par Benzeghiba dans le forum SharePoint
    Réponses: 7
    Dernier message: 17/09/2008, 20h42
  4. Debug d'une DLL utilisé par un site ASP.Net
    Par vince_lille dans le forum ASP.NET
    Réponses: 8
    Dernier message: 06/03/2008, 14h38
  5. Réponses: 3
    Dernier message: 14/03/2007, 21h29

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