2009-02-12 8 views
1

Je me connecte à une instance de serveur SQL distant avec la chaîne de connexion suivanteAgent SQL Server requis pour les connexions à distance?

« bibliothèque réseau = DBMSSOCN; Data Source = xx.xxx.x.xxx, 1433; Initial Catalog = MaBase; ID utilisateur = myuserid; Password = MyPassword; Connect Timeout = 120; "

  1. Sql Server Browser est en cours d'exécution
  2. Connexions locales et distantes sont autorisées utilisant le protocole TCP/IP

L'application échoue au hasard pour se connecter en citant le SqlException suivant

Fournisseur TCP, erreur: 0 - Une tentative de connexion a échoué car la partie connectée n'a pas répondu correctement après un certain temps ou la connexion établie a échoué car l'hôte connecté n'a pas répondu

code pour se connecter comme suit

using (SqlConnection connection = new SqlConnection(m_ConnectionString)) 
{ 
    connection.Open(); // falls over here 
} 

Je pensais config du pare-feu sur le port 1433, mais pourquoi le pare-feu autorisent parfois les connexions et parfois pas?

L'agent serveur Sql doit-il être en cours d'exécution? Et si oui, pourquoi la description de Sql Server Agent sur MSDN n'est pas évidente à cet égard?

Merci!

EDIT: J'ai essayé d'ajouter une règle explicite sur le pare-feu pour ouvrir 1433 et à ce jour si bon, mais pourrait être aléatoire à nouveau si difficile de dire si je fixe ou pas encore

Répondre

2

Non, SQL Server Agent ne besoin d'être en cours d'exécution. L'agent SQL Server est nécessaire uniquement pour exécuter des tâches planifiées sur le serveur SQL.

Il s'agit probablement d'un problème réseau. Pouvez-vous pinguer le serveur? Si c'est le cas, essayez de faire un ping continuellement avec/t et voyez si tous les paquets arrivent.

Cela peut également poser un problème avec le chargement du serveur SQL. Le serveur est-il inactif ou en charge?

Pourriez-vous tester l'application localement sur le serveur SQL ou sur le même réseau local pour voir si le problème persiste?

+0

J'ai essayé pinger en permanence, aucune défaillance, les réponses de 38 partout - 250 ms. Sql Server serait sous charge constante car il dispose également de 7 bases de données exécutant une installation Sitecore et une méta base de données image en utilisation constante –

+0

Une autre application s'exécute localement sur la machine qui interroge la même base de données qui échoue à distance mais jamais échoue –

+0

Est-ce que les journaux des événements ou les journaux du serveur SQL vous donnent une idée de ce qui se passe? –

1

Eh bien, vous n'avez pas besoin de SQL Server Agent en cours d'exécution, l'erreur suggère que vous obtenez un délai d'expiration du scénario.

Il existe plusieurs raisons pour lesquelles vous pourriez être bloqué. Peut-être que le pare-feu est configuré pour n'autoriser qu'un certain nombre de connexions sur un port en même temps. Ou la base de données elle-même limite le nombre de connexions. Votre internet est lent et vous frappez le délai d'attente de 120 secondes. La liste continue. :)

Questions connexes