Connexion distante

Résolu
SuperBouly Messages postés 410 Date d'inscription dimanche 1 février 2004 Statut Membre Dernière intervention 8 mai 2010 - 25 sept. 2007 à 19:33
iguypouf Messages postés 45 Date d'inscription mercredi 27 octobre 2004 Statut Membre Dernière intervention 26 août 2009 - 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

14 réponses

SuperBouly Messages postés 410 Date d'inscription dimanche 1 février 2004 Statut Membre Dernière intervention 8 mai 2010
27 sept. 2007 à 09:44
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
3
David REI Messages postés 33 Date d'inscription mardi 18 septembre 2007 Statut Membre Dernière intervention 27 septembre 2007
25 sept. 2007 à 21:21
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...
0
SuperBouly Messages postés 410 Date d'inscription dimanche 1 février 2004 Statut Membre Dernière intervention 8 mai 2010
25 sept. 2007 à 22:05
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
0
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
26 sept. 2007 à 12:01
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
SuperBouly Messages postés 410 Date d'inscription dimanche 1 février 2004 Statut Membre Dernière intervention 8 mai 2010
26 sept. 2007 à 15:24
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
0
SuperBouly Messages postés 410 Date d'inscription dimanche 1 février 2004 Statut Membre Dernière intervention 8 mai 2010
26 sept. 2007 à 15:28
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
0
David REI Messages postés 33 Date d'inscription mardi 18 septembre 2007 Statut Membre Dernière intervention 27 septembre 2007
26 sept. 2007 à 18:55
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 :/
0
David REI Messages postés 33 Date d'inscription mardi 18 septembre 2007 Statut Membre Dernière intervention 27 septembre 2007
27 sept. 2007 à 09:51
C'est bon à savoir ! Moi j'avais fait remove LocalSqlServer au lieu de clear, ça marchait aussi
0
SuperBouly Messages postés 410 Date d'inscription dimanche 1 février 2004 Statut Membre Dernière intervention 8 mai 2010
27 sept. 2007 à 10:22
bonjour,
également bon à savoir !
@+
gilles
0
iguypouf Messages postés 45 Date d'inscription mercredi 27 octobre 2004 Statut Membre Dernière intervention 26 août 2009
27 nov. 2007 à 18:07
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 !
0
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
27 nov. 2007 à 18:08
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
0
iguypouf Messages postés 45 Date d'inscription mercredi 27 octobre 2004 Statut Membre Dernière intervention 26 août 2009
27 nov. 2007 à 18:14
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 ?
0
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
27 nov. 2007 à 21:15
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
0
iguypouf Messages postés 45 Date d'inscription mercredi 27 octobre 2004 Statut Membre Dernière intervention 26 août 2009
28 nov. 2007 à 11:11
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
0
Rejoignez-nous