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

Windows Forms Discussion :

[C# - SQL SERVER 2005] Connexion à une base de données distante


Sujet :

Windows Forms

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
    Août 2002
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Août 2002
    Messages : 24
    Par défaut [Résolu] [C# - SQL SERVER 2005] Connexion à une base de données distante
    Bonjour,

    Je me heurte depuis deux jours à un problème de connexion à un serveur SQL SERVER 2005, via C#.

    Je développe en fait une application C# de type Windows Forms pour un réseau d'entreprise. Jusqu'à présent, nous fonctionnions avec MySQL, et tout marchait à merveille, mais nous sommes passés à SQL SERVER 2005 Standard Edition. La base de données est installée sur le serveur du réseau d'entreprise. Ce serveur tourne sous Windows Server 2003 Enterprise Edition.

    Les postes clients accèdaient à la base de données MySQL sur le serveur simplement via l'adresse IP de ce dernier, le nom de la base de donnée, un login et un mot de passe. J'essaie d'appliquer le même principe avec SQL SERVER 2005, mais cela ne fonctionne pas, malgré des heures de recherche.

    En local, aucun problème, lorsque j'exécute l'application sur le serveur lui-même, tout se passe bien avec le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SqlConnection myConnection = new SqlConnection("Server = localhost; Database = mabdd; User ID = sa; Password = ****; Trusted_Connection = False;");
    En local, je peux indifféremment écrire "localhost" ou bien le nom du serveur, et tout marche bien, les requêtes s'exécutent sans problème. (L'authentification est de type SQL Server avec le compte sa)

    En revanche, lorsque je tente d'accéder à la base de données via un poste client, cela ne fonctionne pas, avec le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Data Source=192.168.10.1,1433;Network Library=DBMSSOCN;Initial Catalog=mabdd;User ID=sa;Password=****;");
    J'obtiens le message d'erreur suivant :
    "Provider : Fournisseur TCP, error : 0 - Aucune connexion n'a pu être établie car l'ordinateur cible l'a expressément refusé"

    J'ai déjà checké pas mal de points sur le serveur :

    -Dans "Configuration de la surface d'exposition de SQL Server 2005", les connexions distantes sont autorisées et SQL Server Browser est bien en cours d'exécution
    -Dans "SQL Server Configuration Manager", le protocole client TCP/IP est bien activé, et son port par défaut est bien le 1433. (Comment vérifier que c'est bien par ce port qu'il faut passer ?)
    -L'adresse IP du serveur est bien 192.168.10.1
    -J'ai redémarré plusieurs fois SQL Server
    -Parefeu Windows désactivé
    -Antivirus Norton désactivé
    -Le nom de mon instance est MSSQLSERVER. J'ai donc tenté de me connecter avec la string suivante "Data Source=192.168.10.1/MSSQLSERVER", mais ça ne fonctionne pas non plus

    Je ne vois plus où orienter mes recherches, ce que je trouve sur le net ne m'apporte pas d'éléments nouveaux. Si quelqu'un a une idée...

    PS : Je ne peux pas non plus utiliser l'assistant de connexion de Visual Studio 2005, car je développe l'application C# Windows Forms sur les PC de mon entreprise où Visual Studio 2005 est bien entendu installé, et non à partir des postes du réseau de l'entreprise cliente (sur lesquels Visual Studio 2005 n'est pas installé). (Ce qui fait que je n'ai pas accès au serveur à partir du poste où je programme)

  2. #2
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Named Pipe est aussi activé ?

  3. #3
    Membre averti
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Août 2002
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Août 2002
    Messages : 24
    Par défaut
    Merci pour votre réponse.

    Les canaux nommés sont effectivement activés eux aussi. (Ils l'étaient déjà par défaut, tout comme le protocole TCP/IP)

    Ce qui me paraît vraiment étrange, c'est que la connexion string suivante ne marche vraiment pas, même lorsque j'exécute directement mon application sur le serveur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Data Source=192.168.10.1,1433;Network Library=DBMSSOCN;Initial Catalog=mabdd;User ID=sa;Password=****;");
    Le problème viendrait donc de cette connexion string et non de la configuration réseau/SQL Server ? C'est peut-être le numéro de port qui est faux. J'ai vérifié dans SQL Server Configuration Manager et le port associé au protocole TCP/IP est bien le 1433. Mais c'est le port par défaut, peut-être est-il différent en l'occurence ?

  4. #4
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Vous avez essayé ceci:

    SqlConnection myConnection = new SqlConnection("Server = votreserver\nomdelinstance; Database = mabdd; User ID = sa; Password = ****; Trusted_Connection = False;");
    En gros, indiquer le nom du serveur ET le nom de l'instance ?

  5. #5
    Membre averti
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Août 2002
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Août 2002
    Messages : 24
    Par défaut
    J'ai tenté :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SqlConnection myConnection = new SqlConnection("Server = monserveur/moninstance; Database = mabdd; User ID = sa; Password = ****; Trusted_Connection = False;");
    Et aussi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SqlConnection myConnection = new SqlConnection("Server = monserveur\\moninstance; Database = mabdd; User ID = sa; Password = ****; Trusted_Connection = False;");
    Mais ça ne marche pas, ni à distance, ni directement sur le serveur. (Erreur 40 avec les named pipes, alors que celles-ci semblent bien activées quand je vais dans les menus de configuration).

    Il doit y avoir un petit détail qui m'échappe et qui empêche tout cela de fonctionner.

  6. #6
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut


    Là, je ne comprend plus rien, désolé...

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

Discussions similaires

  1. [Débutant] VB.NET et SQL Server 2008 - connexion à ma base de données
    Par chouchachaimouta dans le forum VB.NET
    Réponses: 1
    Dernier message: 18/04/2012, 02h03
  2. SQL Server 2005 - Dupliquer une base
    Par zeloutre dans le forum Outils
    Réponses: 4
    Dernier message: 18/03/2010, 17h51
  3. [SQL SERVER 2K] ACTUALISER une Base de Données
    Par dondiavolo1983 dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 11/04/2007, 07h41
  4. [SQL SERVER] Mettre à jour une base de donnée
    Par grellierj dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 24/05/2006, 11h33
  5. [Oracle/SQL-Server] Comment crypter une base de données ?
    Par [DreaMs] dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 28/11/2005, 18h02

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