Connexion distante [Résolu]

SuperBouly 411 Messages postés dimanche 1 février 2004Date d'inscription 8 mai 2010 Dernière intervention - 25 sept. 2007 à 19:33 - Dernière réponse : iguypouf 45 Messages postés mercredi 27 octobre 2004Date d'inscription 26 août 2009 Dernière intervention
- 28 nov. 2007 à 11:11
Bonjour et au secours,
J'ai une application avec l'authentification intégrée ASP.Net.
Je la publie chez un hébergeur. J'ai droit à une base SQL SERVER. Je la cree dans le Plesk: "MaBaseSQL". je crée dans la foulée un utilisateur, appelons-le "MOI" et un Mot de passe "MonMdP
A l'aide de Management Studio, avec l'authentification SQL SERVER, je me connecte au serveur distant et je lui charge toutes les tables de la base locale ainsi que les procédures stockées. Au passage, je vois mon utilisateur (MOI)  et je constate qu'il est bien dans les roles db_reader et db_writer.

Finalement, j'ajuste mon connectionString et c'est là que ça se gâte :
<connectionStrings>

</connectionStrings>
J'ai essayé toutes les variantes possibles et je me vois toujours répondre la même chose:
Une erreur s'est produite lors de l'établissement d'une connexion au serveur. Lors de la connexion à SQL Server 2005, cet échec peut être dû au fait que les paramètres par défaut de SQL Server n'autorisent pas les connexions à distance. (provider: Interfaces réseau SQL, error: 26 - Erreur lors de la localisation du serveur/de l'instance spécifiés

J'ai vérifié les propriétés du serveur avec Management Studio, il accepte bien les connexions distantes. Que pourrais-je avoir oublié ou mal fait ?
Le support de l'hébergeur reste bien entendu laconique et légèrement agacé, façon de laisser croire qu'on maitrise....
Si quelqu'un a un petite idée...
Merci d'avance
Gilles
Afficher la suite 

14 réponses

Répondre au sujet
SuperBouly 411 Messages postés dimanche 1 février 2004Date d'inscription 8 mai 2010 Dernière intervention - 27 sept. 2007 à 09:44
+3
Utile
bonjour,
VICTOIRE, la bête est terrassée.
Il suffit de mettre dans le web.config :

<clear />
    <addname= "
LocalSqlServer "
connectionString ="
Data Source=localhost;Initial Catalog=MaBaseSQL;User Id=MOI;Password=MonMdP;Integrated Security=False"
providerName="
AspNetSqlMembershipProvider1"
/>
<!-- ...................Rajout de mes autres chaines........................ -->

En effet, en supprimant tous les connectionstrings avec <clear />, le machine.config du serveur réclamait:
Le nom de connexion 'LocalSqlServer' est introuvable dans la configuration des applications, ou la chaîne de connexion est vide.
 alors le lui ai rendu en mettant MA chaine de connexion et ça marche!!

Merci à vous deux, David REI et Jesusonline pour votre aide précieuse.
Gilles
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de SuperBouly
David REI 33 Messages postés mardi 18 septembre 2007Date d'inscription 27 septembre 2007 Dernière intervention - 25 sept. 2007 à 21:21
0
Utile
Salut SuperBouly,
J'ai eu la même erreur que toi, à un moment aussi avec le webPartManager qui necessite par défaut un mécanisme pour la personnalisation dans SQL Server et j'ai dû rajouter une entrée <remove> de ma connection String pour finalement la rédéfinir avec un add ... c'était dans le KB de Microsoft :$ Mais cette erreur elle sert un peu à tout j'ai l'impression.. Je ne sais pas si ça va t'avancer dans ta recherche...
Commenter la réponse de David REI
SuperBouly 411 Messages postés dimanche 1 février 2004Date d'inscription 8 mai 2010 Dernière intervention - 25 sept. 2007 à 22:05
0
Utile
bonsoir
merci de ta réponse, je viens d'essayer
<removename="
ConnectionString"
/>
<addname="
ConnectionString" etc...
mais sans succès !
Il faut que je trouve autre chose.
Au fait, sans faire de parano (des fois ça arrive!) , se peut-il que je sois victime d'un pare-feu mal maîtrisé ou qqch du même genre ?
@+Gilles
Commenter la réponse de SuperBouly
jesusonline 6827 Messages postés dimanche 15 décembre 2002Date d'inscription 13 octobre 2010 Dernière intervention - 26 sept. 2007 à 12:01
0
Utile
Bonjour,

au niveau du remove, je te conseille plutot de faire un <clear />. Le remove est nécessaire si tu appelle ta connectionstring le nom par défaut, localsqlserver je crois.
Pour ton problème, es tu sur que le serveur sql se trouve bien sur la meme machine que le serveur web ? Quand tu te connecte à distance tu utilises la même IP que l'ip du serveur web ? Je pense que le problème viennent de là. L'autre possibilité c'est qu'il y a un part feu entre ton serveur web et ton serveur sql ... mais comme configuré actuellement ce n'est pas possible puisqu'il est sur la meme machine.

<hr />Cyril - MSP - MCPD ASP.net & MCTS SQL - Consultant indépendant
Commenter la réponse de jesusonline
SuperBouly 411 Messages postés dimanche 1 février 2004Date d'inscription 8 mai 2010 Dernière intervention - 26 sept. 2007 à 15:24
0
Utile
bonjour,
Merci de me aider un peu. je reviens à la fin de mon message sur les difficultés rencontrées avec le <clear />
Pour l'instant, le Pb se décale un peu : je viens d'avancer un peu dans ma recherche: j'ai modifié mon web.config :
j'ai mis

de cette façon, j'accède à certaines pages qui ne demandent pas de connexion à la base pour se remplir.
DE Là, je puis me connecter avec un login et un mot de passe et revenir à la page .
CE qui prouve que le string de connexion à la base et la base elle-même  sont convenables OUF! je commençais à douter.
Par contre, les pages qui demandent de renseigner des propriétés de profil me renvoient l'erreur 26:
(provider: Interfaces réseau SQL, error: 26 - Erreur lors de la localisation du serveur/de l'instance spécifiés)
Le Problème est donc identifié, il y a une erreur dans mon web.config au niveau du MembershipProvider.

Pourtant, ce qui suit me parait pourtant correct (et marche en local) avec un petit doute sur "applicationName= "/"

<connectionStrings>

<removename="
ASPNETDBConnectionString1"
/>
<removename="
ConnectionString"
/>



<
add


name
=
"

ASPNETDBConnectionString1
"



connectionString
=
"

Data Source=localhost;Initial Catalog=MaBaseSQL;User Id=MOI;Password=MonMdP;Integrated Security=False
"



providerName
=
"

AspNetSqlMembershipProvider1
"

/>

<
add


name
=
"

ConnectionString
"



connectionString
=
"

Data Source=localhost;Initial Catalog=GDF_4;User Id=ASW;Password=SBouly;Integrated Security=False
"



providerName
=
"

AspNetSqlMembershipProvider1
"

/>

</
connectionStrings
>



<
system.web
>
---------
<membershipdefaultProvider="
AspNetSqlMembershipProvider1 "
>
<providers>

<removename ="
AspNetSqlMembershipProvider1"
/>

<addconnectionStringName= "
ConnectionString"
 
   enablePasswordRetrieval="
true"
 
   enablePasswordReset="
true"
 
   requiresQuestionAndAnswer="
true"
 
   applicationName="
/"
 
   requiresUniqueEmail="
false"
 
   passwordFormat="
Clear"
 
   maxInvalidPasswordAttempts="
10"

    minRequiredPasswordLength="
3"
 
   minRequiredNonalphanumericCharacters="
0"
 
   passwordAttemptWindow="
10"
 
   passwordStrengthRegularExpression=""
 
    name ="
AspNetSqlMembershipProvider1"
 
   type= "
System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
/>


</providers>
</membership>





<!-- ...................Rajout de quelques proprietes de profile........................ -->


<profile>
<properties>
   <addname="
Titre"
/>
   <addname="
Nom"
/>
   <addname="
Prenom"
/>
<!-- ...................etc etc...................... -->
</properties>
</profile>
------
</ system.web
>

Y voyez- vous ue erreur ?

Pour ce < clear />, si je le mets au début de <connectionStrings>
le serveur me retourne une erreur sur le machine.config du serveur distant !

Message d'erreur de l'analyseur: Le nom de connexion 'LocalSqlServer' est introuvable dans la configuration des applications, ou la chaîne de connexion est vide.

Ligne 166 :                    type ="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0,  Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />

Fichier source : C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Config\machine.config    Ligne : 166







Là, je suis un peu perdu, que dois-je alors rajouter pour faire bonne mesure?

Pour ce qui est de savoir si c'est la même machine, je peux voir le nom de l'ordinateur qui porte le serveur SQL dans SQL SERVER Management Studio, mais pour le serveur IIS, je ne sais pas où regarder
merci de votre patience
@+Gilles
Commenter la réponse de SuperBouly
SuperBouly 411 Messages postés dimanche 1 février 2004Date d'inscription 8 mai 2010 Dernière intervention - 26 sept. 2007 à 15:28
0
Utile
Petit detail: en fait, les login et MdP sont bien les mêmes dans les 2 connectionStrings, c'est une erreur de recopiage. l'errreur n'est pas là
@+Gilles
Commenter la réponse de SuperBouly
David REI 33 Messages postés mardi 18 septembre 2007Date d'inscription 27 septembre 2007 Dernière intervention - 26 sept. 2007 à 18:55
0
Utile
Oui c'est le problème du <clear />, il n'affecte pas une chaine de connection particulière comme le fait le remove.. donc comme la chaine n'est pas défini, il
va essayer de la retrouver au niveau du machine.config ... Utilises-tu un mécanisme de personnalisation ASP.NET qui necessite une base de donnée ? Par défaut il
va taper dans la bd de la connection string localSqlServer, j'avais fait exactement un remove de l'entrée "localSqlServer" dans le web.config et je l'ai redefini ensuite avec mon serveur sql de prod.. Il doit y avoir un autre moyen mais je n'ai pas eu le temps de chercher dans le détail :/
Commenter la réponse de David REI
David REI 33 Messages postés mardi 18 septembre 2007Date d'inscription 27 septembre 2007 Dernière intervention - 27 sept. 2007 à 09:51
0
Utile
C'est bon à savoir ! Moi j'avais fait remove LocalSqlServer au lieu de clear, ça marchait aussi
Commenter la réponse de David REI
SuperBouly 411 Messages postés dimanche 1 février 2004Date d'inscription 8 mai 2010 Dernière intervention - 27 sept. 2007 à 10:22
0
Utile
bonjour,
également bon à savoir !
@+
gilles
Commenter la réponse de SuperBouly
iguypouf 45 Messages postés mercredi 27 octobre 2004Date d'inscription 26 août 2009 Dernière intervention - 27 nov. 2007 à 18:07
0
Utile
Bonjour à tout le monde,

Je sais ce problème date un peu, mais j'ai une petite question pour des experts !

Je me rends compte que l'appli que je suis en train de prendre en main, possède comme connection string non pas
"Datasource=localhost" mais bien "Datasource="XX.XX.XX.XX", représentant l'ip du serveur... le même que celui du serveur asp !!!

Est-il possible que cela soit la cause d'une lenteur des requêtes SQL ?

Merci à vous tous !
Commenter la réponse de iguypouf
jesusonline 6827 Messages postés dimanche 15 décembre 2002Date d'inscription 13 octobre 2010 Dernière intervention - 27 nov. 2007 à 18:08
0
Utile
bonjour,

non ! Au contraire puisqu'il n'y aura pas de résolution dns/netbios (effectué seulement lorsque pas en cache donc la premiere fois)

<hr />Cyril - MSP - MCPD ASP.net & MCTS SQL - Consultant indépendant
Commenter la réponse de jesusonline
iguypouf 45 Messages postés mercredi 27 octobre 2004Date d'inscription 26 août 2009 Dernière intervention - 27 nov. 2007 à 18:14
0
Utile
Merci pour ta réponse, mais je ne sais pas comment la prendre :)

Non, mettre l'IP et non localhost n'a pas d'influence sur la lenteur ?
Commenter la réponse de iguypouf
jesusonline 6827 Messages postés dimanche 15 décembre 2002Date d'inscription 13 octobre 2010 Dernière intervention - 27 nov. 2007 à 21:15
0
Utile
La résolution de nom (nom ==> IP) sera mis en cache, donc c'est la meme chose niveau perf

<hr />Cyril - MSP - MCPD ASP.net & MCTS SQL - Consultant indépendant
Commenter la réponse de jesusonline
iguypouf 45 Messages postés mercredi 27 octobre 2004Date d'inscription 26 août 2009 Dernière intervention - 28 nov. 2007 à 11:11
0
Utile
Justement, ce système de cache continue-t-il à fonctionner de la même façon quand l'appli est en SSL ?

Je sais que le SSL fait que le cache client n'est pas utilisé... Mais qu'en est-il du cache d'application côté serveur ?

Merci à toi :D
Commenter la réponse de iguypouf

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.