1

J'essaie de me connecter à une base de données SQL Server 2005 distante à partir d'un service .NET Windows s'exécutant dans Vista Home Premium x64. Je peux accéder à la base de données à distance à partir d'une application de console sans problème. Je peux me connecter à une base de données locale à partir du service Windows sans problème. J'ai pu me connecter à partir d'un service de XP sans problème. Il n'y a pas de pare-feu ou d'anti-virus en cours d'exécution. Comment configurer ce service pour pouvoir me connecter à la base de données distante?Impossible de se connecter à SQL Server 2005 Db à partir du service Windows Vista x64

J'ai essayé de me connecter en exécutant le service Windows en tant que compte administrateur local, LocalSystem, LocalService et NetworkService.

La chaîne de connexion:

Source de données = NOM_SERVEUR; Initial Catalog = DB_NAME; Integrated Security = True;

L'erreur:

Une erreur ou spécifique à l'instance liée au réseau lors de l'établissement d'une connexion à SQL Server. Le serveur est introuvable ou inaccessible. Vérifiez que le nom d'instance est correct et que SQL Server est configuré pour autoriser les connexions distantes. (Fournisseur: Fournisseur de canaux nommés, erreur: 40 - Impossible d'ouvrir une connexion à SQL Server)

PLUS D'INFO:

J'ai aussi essayé de se connecter en utilisant l'authentification SQL Server sans succès:

données Source = SERVER_NAME; ID utilisateur = USER_ID; Mot de passe = PWD; Initial Catalog = DB_NAME

Cette chaîne de connexion fonctionne également à partir de l'application de console.

PLUS D'INFO:

J'ai couru Process Monitor pour le service Windows et l'application de la console. Le service Windows montré \ SERVER_NAME \ pipe \ sql \ query était ACCÈS REFUSÉ mais l'application de console a montré SUCCÈS lors de la lecture/écriture de fichiers dans \ SERVER_NAME \ pipe \ sql \ query.

Répondre

0

1) ouvrir une invite de commande. Tapez "ping SERVER_NAME". Est-ce que ça répond? Vous pouvez avoir un problème de DNS ou de connectivité si cela ne fonctionne pas.

2) "telnet SERVER_NAME 1443". Voyez-vous quelque chose ou refuse-t-il votre connexion? Cela vous dira si oui ou non quelqu'un écoute à l'autre bout.

3) Allez dans SQL Server Management Studio. Cliquez avec le bouton droit sur Propriétés de votre serveur. Sélectionnez "Connexions" sur le côté gauche. Est-ce que "Autoriser les connexions distantes" est coché?

4) Comme vous utilisez le service/système réseau, vous devez vous assurer que vous avez configuré une connexion sur votre serveur pour le compte machine DOMAIN \ CLIENTSYSTEMNAME $. Notez le signe $. C'est votre compte machine, et ce sera l'utilisateur que SQL Server verra.

+0

1.Ping fonctionne bien; 2. 1143 ne fonctionne pas, 445 ressemble à ça fonctionne; 3: Oui; 4: I VPN dans le réseau et utiliser Win Explorer pour aller à \\ Server, puis je me connecte en utilisant mon réseau userid/pwd. Après cela, l'application console se connecte à la DB ainsi que la connexion de XP. – TxDeveloper

+0

Lorsque vous êtes VPN, votre * machine * est-elle elle-même membre du domaine? Essayez également d'accéder au gestionnaire de configuration de SQL Server (sur votre client) et de désactiver les canaux nommés. Assurez-vous que TCP/IP est activé. Cela fonctionne-t-il si vous utilisez une connexion SQL Server? –

+0

Ma machine n'est pas membre du domaine; J'ai désactivé les pipes nommés et tcp/ip était déjà activé. Ensuite, j'ai utilisé la connexion au serveur SQL et cela a fonctionné à la fois depuis l'application console et le service Windows !!! L'authentification Windows ne fonctionne pas avec tcp/ip mais ce n'est pas un problème. Merci beaucoup Dave! – TxDeveloper

1

Bon Seigneur! Pourquoi toutes les réponses charabia et complexes sur ce site. Créer un compte d'utilisateur
Local ou Domaine et définissez le service pour utiliser ce compte. Ensuite, allez dans votre SQL Server et ajouter votre nouveau compte à la base de données et définir les autorisations. Voila!

Oh oui, ne vous empoisonnez pas avec l'authentification SQL. La sécurité intégrée est beaucoup plus facile à maintenir et sans un mot de passe dans votre web.config votre beaucoup plus sûr.

+0

Ou utilisez simplement l'authentification SQL dans votre chaîne de connexion. Tellement plus facile. – sliderhouserules

Questions connexes