2013-03-26 3 views
0

J'ai une installation de SQL Server 2008 sur mon système local et le code suivant dans C#, dans .NET 4.5.Impossible de se connecter à SQL Server localement

private Boolean ConnectDatabase() 
    { 
     if(!this.IsInitialized()) 
     { 
      return false; 
     } 
     else 
     { 
      try 
      { 
       String ConnectionString = "User ID=" + this.DatabaseUsername + ";" + 
              "Password=" + this.DatabasePassword + ";" + 
              "Server=" + this.DatabaseHost + "," + this.DatabasePort + ";" + 
              "Database=" + this.DatabaseResource + ";"; 
       this.DatabaseConnection = new SqlConnection(ConnectionString); 
       this.DatabaseConnection.Open(); 
       return true; 
      } 
      catch (Exception e) 
      { 
       return false; 
      } 
     } 
    } 

je peux connecter au serveur SSMS, mais en utilisant les mêmes informations d'identification que je suis incapable d'obtenir une connexion en C#.

chaîne de connexion est la suivante:

User ID=sa;Password=******;Server=CPUNAME\MSSQL,1433;Database=DBNAME; 

CPUName, DBName et ** sont remplacés par leurs valeurs. J'ai également essayé d'utiliser Windows Credentials, et une variété de points de terminaison de serveur différents, y compris mon nom de NB, Loopback IP, IP interne statique, bla bla bla. Le pare-feu est désactivé. TCP est activé sur le serveur.

je reçois l'exception suivante:

A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: TCP Provider, error: 0 - No connection could be made because the target machine actively refused it.)

Toutes les suggestions?

+1

est-il sqlexpress base de données ?? –

+0

Négatif. SQL Server Enterprise. Les services sont en cours d'exécution. – DigitalJedi805

+0

Je suppose que votre partie serveur n'est pas correcte. Essayez avec (LOCAL) ou juste le nom de votre ordinateur. – Steve

Répondre

1

Avez-vous activé un protocole dans le Gestionnaire de configuration SQL Server?

Voir Enable TCP/IP Network Protocol for SQL Server

[Modifier]
de Nevermind; J'ai raté la partie "TCP est activé sur le serveur" ;-)
La question devient alors: Avez-vous redémarrer SQL Server après l'activation de TCP/IP? Vous devez redémarrer le service SQL (see step 6) pour que ces modifications prennent effet.

Vérifiez également que vous utilisez le nom d'instance correct (Vous utilisez actuellement MSSQL comme nom d'instance, cela peut être SQLExpress ou quelque chose comme ça).

+0

Nom d'instance correct, l'ordinateur a été redémarré comme quatre fois. – DigitalJedi805

+0

Et CPUName résout à l'hôte correct? (Essayez un 'ping CPUName' par exemple). Port est également vérifié pour être effectivement 1433? Aussi, vous voudrez peut-être jeter un oeil à [cet article] (http://blogs.msdn.com/b/spike/archive/2008/12/19/provider-tcp-provider-error-0-no-connection- pourrait-être-fait-parce-que-la-machine-cible-activement-refusée-it.aspx); il mentionne qu'il pourrait y avoir un «alias» en place causant la résolution du mauvais hôte. – RobIII

+0

J'ai vérifié dans le gestionnaire de configuration que le port est réglé sur la valeur par défaut de 1433. Je peux également vous assurer que CPUName résout. – DigitalJedi805

1

Un certain nombre de services doivent être exécutés pour se connecter, même localement. Certains d'entre eux (utilement) sont mis à "démarrage manuel" par défaut. Les services que vous pouvez vérifier incluent SQL Server, Agent SQL Server et le coordinateur de transactions distribuées.

+0

Tous les services liés à SQL sont en cours d'exécution, ainsi que le DTC. – DigitalJedi805

Questions connexes