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 :

Impossible d'acceder à une BDD sur un serveur


Sujet :

ASP.NET

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Février 2007
    Messages : 6
    Points : 5
    Points
    5
    Par défaut Impossible d'acceder à une BDD sur un serveur
    Bonjour,

    j'ai un site en ASP.NET ou j'utilise une identification pour les utilisateurs.
    Pour cela, j'ai une BDD en .MDF qui a ete automatiquement créée dans le dossier App_Data (lui meme à la racine du projet).
    En local, je n'ai aucuns pb, mon identification fonctionne tres bien.
    Mais une fois mon site copié sur le serveur, j'ai un message d'erreur lorsque j'essaye de m'identifier :

    Une erreur s'est produite lors de l'établissement d'une connexion au serveur. Lors de la connexion à SQL Server 2005, cet échec peut être dû au fait que les paramètres par défaut de SQL Server n'autorisent pas les connexions à distance. (provider: Interfaces réseau SQL, error: 26 - Erreur lors de la localisation du serveur/de l'instance spécifiés)
    Description : Une exception non gérée s'est produite au moment de l'exécution de la demande Web actuelle. Contrôlez la trace de la pile pour plus d'informations sur l'erreur et son origine dans le code.
    Détails de l'exception: System.Data.SqlClient.SqlException: Une erreur s'est produite lors de l'établissement d'une connexion au serveur. Lors de la connexion à SQL Server 2005, cet échec peut être dû au fait que les paramètres par défaut de SQL Server n'autorisent pas les connexions à distance. (provider: Interfaces réseau SQL, error: 26 - Erreur lors de la localisation du serveur/de l'instance spécifiés)
    Erreur source:
    Une exception non gérée s'est produite lors de l'exécution de la demande Web actuelle. Les informations relatives à l'origine et l'emplacement de l'exception peuvent être identifiées en utilisant la trace de la pile d'exception ci-dessous.


    J'ai essayé de voir sur des forums, peut etre ca viendrait des droits, mais dans tout les cas je ne sais comment faire.
    Donc merci d'avance à ceux qui sauront m'aider.

  2. #2
    Membre actif
    Inscrit en
    Janvier 2004
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 208
    Points : 227
    Points
    227
    Par défaut
    salut

    comment est ta chaine de connexion dans ton Web.Config

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Février 2007
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Salut,

    justement c'est mon probleme. En fait, j'ai utilisé un controle CreateUserWizard pour l'enregistrement, et un controle Login pour l'identification. Et le premier controle me cree automatiquement le dossier App_Data avec la BDD dedans. Mais il ne me cree pas de chaine de connexion dans le web.config. J'ai cherché dans mes fichiers, et je ne vois pas de trace d'une chaine de connexion.

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

    Informations forums :
    Inscription : Mars 2007
    Messages : 114
    Points : 122
    Points
    122
    Par défaut
    MDF c'est bien le fichier de BDD de sql serveur express 2005 non ?
    est-ce que sql serveur 2005 express est installé sur le serveur ?

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Février 2007
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Il y a SQL server 2005 installé qui sait lire les .MDF.
    Par contre, je sait pas si la BDD est considerée en local si elle est dans le dossier App-Data, et du coup si elle est visible par SQL Server?

    Parce qu'en fait j'ai droit à une BDD chez mon hebergeur, et j'en ai besoin pour d'autre données. C'est pour ca que ca m'interresse de garder les donées utilisateurs à part, mais je me demande si c'est possible.

  6. #6
    Membre régulier

    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 68
    Points : 104
    Points
    104
    Par défaut Sécurité quand tu nous tient
    Je ne suis pas certains que les éléments que je vais apporté vont répondre à votre question. Mais il faut vous assurer des points suivants avant d'aller plus loin.

    Lorsque l'on déploie son site sur un serveur, donc dans IIS, il y a quelques petites choses à comprendre au niveau sécurité (surtout si la sécurité par défaut du serveur a été modifiée par l'administrateur) :

    Droits sous IIS

    Quand un navigateur se présente à IIS et demande une page, IIS utilise le compte IUSR_<Nom de la machine> (c'est le compte par défaut mais cela peut avoir été modifié) comme identité. Ainsi, tout se passe comme si le navigateur s'était logué en tant que IUSR_<Nom de la machine> (D'autres comptes sont utilisés par IIS, ces comptes sont différents si ont utilise IIS5 ou IIS6). Ainsi, si dans le code on essai d'accéder à un répertoire qui ne possède pas les droits pour IUSR_ cela ne fonctionne pas.

    Oui mais, attention, Internet Explorer possède une capacité particulière. Celle de véhiculer l'authentification NT. Ainsi, si vous êtes en session administrateur sur un serveur, que depuis ce serveur vous appelez une page de votre site, IE véhicule votre session administrateur jusqu'à IIS qui de ce fait n'utilise pas IUSR_ mais la session administrateur. Donc, tout va fonctionner. C'est idem quand on est dans un domaine. L'utilisateur qui se connecte n'est plus forcément véhiculé en IUSR_ mais sous sa propre session. Bref, cela peut vite poser des problèmes, même si dans certains cas cela peut s'avérer utile. Je conseil donc de décocher l'option authentification windows intégrée (voir la pièce jointe CAP01). Ainsi, vous êtes certain que vous êtes véhiculé IUSR_, c'est au moins une première chose de faite.

    Ensuite, il faut que IUSR_ ait les droits sur toute la chaîne technologique utilisée par votre application (répertoires, mais aussi parfois base de données, base de registre, réseau, ...). Et là cela peut se compliquer.

    Ainsi, dans votre cas, il faudrait vérifier si vous utilisez une version Serveur ou une version Express de SQL Serveur. Généralement, avec une version Express, cela ne devrait pas poser de problème si vous accédez à des données dans App_Data.

    Mais comme le signale votre message d'erreur, la connexion distante peut être désactivée. C'est à dire que le serveur est capable de voir si un service réseau a été utilisé pour accéder à la base et donc le refuser (Avant de perdre du temps à chercher voyez si le fait de décocher Authentification Windows Intégré comme suggéré plus haut ne solutionne pas le problème).

    D'autres facteurs peuvent intervenir. Si vous vous connectez à votre base avec l'authentification NT (cette foi ci ce n'est plus l'authentification NT entre le navigateur et IIS, mais entre IIS et la base de données), c'est IUSR_ qui sera véhiculé (si vous avez procédé à la modif décrite ci-dessus). Il faut que ce compte ait les droits d'accès à la base. Si vous avez décoché cette cette option et entré un login/password, il faut que ce login/password ait les droits sur la base (voir la pièce jointe CAP02).

    Dans certains cas, d'autres droits sont impliqués. Si par exemple vous avez mis votre site web sur un autre disque (ie. pas dans c:\inetpub\wwwroot), ont oubli souvent que les services (IIS/SQL Serveur) ont aussi besoin d'accéder à ces répertoires.

    Bref, cela peut très rapidement devenir complexe.

    Il serait utile que vous nous signaliez votre config exacte et surtout tout ce qui a été modifié par rapport à une config par défaut. Merci
    Images attachées Images attachées   
    Michaël LEBRETON - Developpeur / Formateur indépendant
    http://www.netkoders.com

  7. #7
    Membre actif
    Inscrit en
    Janvier 2004
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 208
    Points : 227
    Points
    227
    Par défaut
    Salut

    Voici une methode qui me sert a attacher une bd SqlServer 2005.

    la convertion du chemin physique de ton appli pour l'acces au fichier mdf
    HttpContext.Current.Server.MapPath();

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    public static SqlConnection cnx()
            {
     
                try
                {
                    SqlConnectionStringBuilder strCon = new SqlConnectionStringBuilder();
                    strCon.AsynchronousProcessing = true;
                    strCon.AttachDBFilename = "Le chemin physique de ton appli" + @"\rep\fichier.mdf";
                    strCon.IntegratedSecurity = true;
                    strCon.UserInstance = true;
                    strCon.DataSource = @".\"; <-- L'instance SQLServer
     
                    return new SqlConnection(strCon.ConnectionString);
                }
                catch (Exception)
                {
                    throw;
                }
            }
    Bon code

Discussions similaires

  1. Réponses: 4
    Dernier message: 11/01/2015, 12h45
  2. Récupérer des données depuis une BDD sur un serveur de mon site web
    Par kookitanou dans le forum Développement Web en Java
    Réponses: 2
    Dernier message: 30/10/2012, 10h52
  3. Réponses: 9
    Dernier message: 29/04/2011, 23h58
  4. Envoyer une bdd sur le serveur ftp
    Par alex0 dans le forum MySQL
    Réponses: 1
    Dernier message: 09/09/2010, 14h51
  5. [MySQL] Connection à une bdd sur serveur distant
    Par papyphp dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 07/03/2006, 21h13

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