J'ai créé une application C # qui utilise une base de données SQL Server. J'ai d'autres ordinateurs connectés à moi et entre eux dans un groupe de travail. J'ai partagé mon application C # avec d'autres. Lorsqu'ils ouvrent l'application, ils obtiennent l'erreur
Une erreur liée au réseau ou spécifique à l'instance s'est produite lors de l'établissement d'une connexion à SQL Server. Le serveur est introuvable ou inaccessible
Mais l'application fonctionne bien sur mon PC. La chaîne de connexion que j'utilise est
Data Source=ASHISHPC1\SQLEXPRESS;Initial Catalog=ACW;User ID=ash159;Password=ashish159
qui est stocké dans un .config
fichier.
L'application fonctionne bien sur mon PC. Que dois-je faire? J'ai activé le TCP/IP sur le serveur mais la même erreur persiste. Un changement dans la chaîne de connexion ou autre chose?
Il y a deux niveaux de sécurité qui doivent être modifiés afin de permettre l'accès à distance.
Configuration de SQL Server . Par défaut dans les éditions Express, Developer et Enteprise Evaluation, la connexion par le protocole TCP/IP est désactivée . Activez cela à l'aide de SQL Server Configuration Manager.
Pare-feu Windows . Bien que la désactivation complète du pare-feu fonctionnera pour ce composant, cela n'est pas une meilleure pratique de sécurité (ni obligatoire). (Remarque: dans cette section, je suppose une configuration par défaut . Il existe de nombreux paramètres qui peuvent être changé qui affectent légèrement ces étapes.)
Il existe deux cas selon le type d'instance SQL Server auquel vous vous connectez:
Instance par défaut (connexion par nom d'ordinateur uniquement). Ajoutez une règle d'autorisation entrante sur TCP port 1433 ou sur le service du moteur de base de données.
Instance nommée (connexion par nom d'ordinateur + nom d'instance). Ajoutez une règle d'autorisation entrante sur le port UDP 1434 pour accéder au service SQL Browser. Ajoutez une règle d'autorisation entrante sur le service du moteur de base de données.
Cette procédure est entièrement documentée ici , ou vous pouvez me regarder m'expliquer puis parcourir la configuration d'une instance nommée ici .
Vous devez définir les paramètres réseau corrects dans votre SQL-Server: TCP/IP actif dans SQL-Server Assurez-vous également que votre serveur Browser-Service est en cours d'exécution, car s'il est arrêté, vous ne peut pas accéder au serveur SQL.
Assurez-vous que le service sqlbrowser est activé comme mentionné par bendeg et que UDP 1434 est ouvert sur votre machine afin que les clients puissent accéder au sqlbrowser afin de résoudre le nom. Ouvrez également le port TCP/IP de l'instance nommée.
Pour trouver le port de votre instance, connectez-vous en utilisant le préfixe tcp: dans Management Studio comme ceci: tcp: ASHISHPC1\SQLEXPRESS et le résultat de la requête ci-dessous devrait être le port que vous devez exposer aux clients de votre groupe de travail.
SELECT local_tcp_port FROM sys.dm_exec_connections WHERE session_id = @@SPID