web-dev-qa-db-fra.com

La bonne chaîne de connexion pour le serveur SQL distant pour C #

Je veux juste connaître la bonne chaîne de connexion SQL pour une édition express de serveur SQL distant.

C'est ce que j'ai mais j'ai des problèmes

 SqlConnection cs = new SqlConnection(@"Data Source=(IP Address)\PC-NAME\SQLEXPRESS,1433;Network Library=DBMSSOCN;Initial Catalog=dbase;User ID=sa;Password=password");

J'ai eu cette erreur dans mon débogueur C #:

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 - A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected Host has failed to respond.)

Merci d'avance!

8
Lucas Juan

De votre commentaire:

L'adresse IP est l'adresse IP statique. J'essaie de me connecter à l'extérieur du bâtiment.

Si la base de données à laquelle vous essayez de vous connecter se trouve sur un ordinateur derrière un [routeur/pare-feu/modem] qui a l'adresse cible, vous devrez utiliser la redirection de port sur le [routeur/pare-feu/modem] pour transférer toutes les connexions sur = TCP port 1433 via la machine cible.

Si vous essayez de vous connecter à un ordinateur personnel derrière un modem ADSL avec une adresse IP statique, votre modem ADSL doit être configuré avec la redirection de port pour connecter le port externe 1433 avec le même port sur l'adresse interne. Cette doit être effectuée sur le modem, et ne peut pas se fait uniquement avec une chaîne de connexion.

Disons que vous avez un modem ADSL à l'écoute sur 127.2.3.4 (adresse non valide pour la démonstration uniquement) et un PC derrière cela avec une adresse IP de 192.168.0.100. Configurez le modem pour transférer le port 1433 vers 192.168.0.100:1433 (comment dépendra de la marque et du modèle du modem). Votre chaîne de connexion serait alors:

Data Source=127.2.3.4\SQLEXPRESS,1433;Network Library=DBMSSOCN;Initial Catalog=dbase;User ID=sa;Password=password

En supposant que SQLEXPRESS est la seule instance de base de données sur le serveur et que le port 1433 est la valeur par défaut, vous pouvez utiliser le plus simple:

Data Source=tcp:127.2.3.4;Initial Catalog=dbase;User ID=sa;Password=password

Le Network Library=DBMSSOCN la spécification est remplacée par tcp: et les valeurs par défaut sont supposées pour l'instance et le port.

10
Corey

Solution: si vous fournissez une machine distante IP address alors vous n'avez pas besoin de fournir hostname

Essaye ça:

SqlConnection cs = new SqlConnection(@"Data Source=(IP Address)\SQLEXPRESS,1433;Network Library=DBMSSOCN;Initial Catalog=dbase;User ID=sa;Password=password");
3
Sudhakar Tillapudi

Pourquoi n'essayez-vous pas SqlConnection String Builder ici .

2
vkstarry