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 :

probleme sur serveur uniquement.


Sujet :

ASP.NET

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 104
    Par défaut probleme sur serveur uniquement.
    Bonjour à tous,

    alors j'ai un problème assez particulier, dans le sens où je ne sais pas le localiser. Je m'explique :

    Je fais ma ptite applic en local chez moi, tout va bien... puis je transfert sur le serveur distant, et là ca merde...

    Pour info, ca merde lorsque j'établis une connexion vers une base access, et que j'insere des données dans une table...
    Mais je ne sais pas localiser plus précisément mon erreur étant donné que ca marche en local... je ne sais donc pas faire de pas a pas

    Enfin, ceci dit, le browser est qdm gentil, il m'indique ceci :

    Server Error in '/' Application.
    --------------------------------------------------------------------------------

    Object reference not set to an instance of an object.
    Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

    Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.

    Source Error:

    An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

    Stack Trace:


    [NullReferenceException: Object reference not set to an instance of an object.]
    DataBaseCommunication.DataBase..ctor() +159
    DataBaseCommunication.LOGIN.Ajout() +40
    Formulaires_Nouveau.BtEnvoyer_Click(Object sender, EventArgs e) +75
    System.Web.UI.WebControls.Button.OnClick(EventArgs e) +105
    System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +107
    System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +7
    System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +11
    System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33
    System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +5102


    inutile de vous dire que le StackTrace ne m'aide pas beaucoup
    Donc ma question est la suivante : quel est le moyen de mettre le doigt sur mon erreur ?

    Merci de votre aide !

  2. #2
    Rédacteur

    Inscrit en
    Juin 2004
    Messages
    744
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Juin 2004
    Messages : 744
    Par défaut
    A mon avis ta machine de production n'a pas les drivers nécessaire pour attaquer une db access (OLEDB ou ODBC)

    Ludovic,
    Envie de contribuer à la rubrique SharePoint ? Contactez moi par MP !

    SharePoint : http://sharepoint.developpez.com
    Mon site : http://lefortludovic.developpez.com
    Mon blog : http://www.consultpoint.net/blog

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 114
    Par défaut
    tu peux nous montrer la chaîne de connexion que tu utilises.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 104
    Par défaut
    Bonjour,

    Apres pas mal d'essais-erreurs, j'ai su en partie localiser cette erreur. Apparemment il ne trouvait pas ma base de données Access. Comme conseillé lors de l'ajout dans ma solution, la base de données a été placée dans le répertoire App_Data. Maintenant, comment indiquer ce répertoire dans ma chaine de connexion :

    "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= ???";

    j'ai trouvé le moyen en utilisant la fonction System.Web.HttpContext.Current.Server.MapPath("");
    Celle-ci renvoit l'emplacement physique du répertoire sur le serveur.

    Du coup, ma chaine de connexion devient :

    "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= C:\\Inetpub\\wwwroot\\Sites\\RMPro\\App_Data\\Formulaire.mdb";

    Et maintenant : le programme arrive à ouvrir la base de données, donc plus de message comme précédemment ! MAIS... lors d'une requete d'insertion dans la base, j'ai maintenant le message suivant : "Operation must use an updateable query".

    En regardant sur Google, il apparait qu'une des causes possibles de ce message soit des droits d'accès insuffisants pour écrire dans un fichier ou répertoire... ET en effet, j'ai déjà essayé de créer des fichiers xml par programme en utilisant cette fonction MapPath(""); et il me disait que je n'avait pas le droit...

    Ma conclusion... cette fonction MapPath(""); est-elle bien la bonne solution pour localiser le répertoire App_Code/ de mon application, et donc ma base de données sur le serveur ?

    Merci de votre lecture attentive

  5. #5
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Ta base ne serait pas en lecture seule sur le serveur?

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 104
    Par défaut
    Alors j'ai demandé à celui qui s'occupe du serveur, et mon répertoire dans lequel se trouve ma base est bien en lecture-écriture. Donc pour résumer voici ce que je fais :

    //avec cette chaine-ci (en local) ca passe
    string connStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Documents and Settings\\Nico\\Bureau\\EssaiDb\\App_Data\\Formulaire.mdb";
    //avec cette chaine-ci (sur serveur distant) ca merde
    //string connStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Inetpub\\wwwroot\\Sites\\RMPro\\App_Data\\Formulaire.mdb";

    String Requete = "INSERT INTO LOGIN (CodeAcces,AdresseEmail,AdresseIP) VALUES('toto','titi','tata')";
    OleDbConnection oConn;
    OleDbCommand oCmd;
    OleDbDataAdapter oDA;


    try
    {
    oConn = new OleDbConnection(@connStr);
    oDA = new OleDbDataAdapter();
    oCmd = new OleDbCommand("", oConn);
    oConn.Open();

    oCmd.CommandText = Requete;
    oCmd.CommandType = CommandType.Text;
    oCmd.ExecuteNonQuery();
    }catch (Exception Exc){Label1.Text = Exc.Message;}

    et donc j'obtiens dans mon label1 : "Operation must use an updateable query"


  7. #7
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Par défaut
    L'utilisateur ASP.NET possède les droits d'écriture sur le fichier access ?
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 104
    Par défaut
    de fait, c'était bel et bien un probleme de droits d'acces : on a mis les droits les moins restrictifs pour ce répertoire et maintenant le probleme est reglé !


  9. #9
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Citation Envoyé par nico_4802
    de fait, c'était bel et bien un probleme de droits d'acces : on a mis les droits les moins restrictifs pour ce répertoire et maintenant le probleme est reglé !

    C'est pas top ça

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 104
    Par défaut
    euh non mais finalement, a-t-on le choix ?

    un internaute lambda qui se connecte à mon site doit pouvoir ajouter des champs dans la base de données lorsqu'il remplit un formulaire... étant donné qu'il se connecte en "invité" sur le serveur, si je veux qu'il puisse insérer des champs dans ma base de données, il faut bien que le répertoire qui contient la base autorise en écriture les invités, non ?

    si qqun peut m'éclairer à ce sujet, ce serait chouette car il me manque un peu de pratique en administation systèmes.... en meme temps, c'est pas moi non plus qui m'en occupe

  11. #11
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    C'est le user ASPNET qui s'occupe de ça donc c'est lui qui doit avoir les droits.
    Y a aussi un truc avec le user SERVICE RESEAU il me semble mais à vérifier

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

Discussions similaires

  1. [AC-2003] Problem ole serveur /activeX uniquement sur 1 poste (pologne)
    Par EdmoParker dans le forum Access
    Réponses: 1
    Dernier message: 05/02/2011, 06h24
  2. probleme de droit sur serveur web
    Par M@XflY dans le forum Debian
    Réponses: 2
    Dernier message: 11/01/2007, 18h15
  3. Problème sur Serveur Samba
    Par moule dans le forum Réseau
    Réponses: 1
    Dernier message: 05/06/2006, 21h30
  4. Problèmes sur le serveur forum ?
    Par Baptiste Wicht dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 19
    Dernier message: 24/04/2006, 16h20
  5. Probleme deploiement appli vb6 sur serveur 2003
    Par rivierem dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 12/04/2006, 16h02

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