2010-09-30 22 views
4

Nous essayons de trouver un moyen de modifier sqlConnectionString de sessionState (en mode SQLServer) lors de l'exécution. Nous implémentons un fail over pour notre serveur SQL et nous voulons attraper quand sessionState ne peut pas accéder à mon serveur SQL et lui dire de basculer sur mon serveur secondaire et d'initialiser le basculement à l'échelle du site en même temps.Comment changer sqlConnectionString pour sessionState en mode SQLServer lors de l'exécution?

Si je ne suis pas clair s'il vous plaît n'hésitez pas à me demander plus de détails. (BTW nous utilisons C#)

Modifier: Juste pour être sûr, je parle sessionState et non les connexions serveur SQL régulière voir http://msdn.microsoft.com/en-us/library/h6bb9cz9(vs.71).aspx.

Mon web.config actuel est construit comme ceci:

<configuration> 
    [...] 
<system.web> 
    [...] 
    <sessionState mode="SQLServer" timeout="525600" sqlConnectionString="Data Source=localhost\SQLEXPRESS;User ID=myUser;password=myPassword" cookieless="false"/> 
</system.web> 
[...] 
</configuration> 

Hope this helps.

+0

La solution consistait à utiliser un PartitionResolver: System.Web.IPartitionResolver avec une chaîne publique de méthode publique ResolvePartition (clé d'objet) qui retourne la chaîne de connexion appropriée.

Répondre

1

Selon la façon dont vous gérez votre connexion, vous pouvez spécifier un des partenaires de basculement de serveur miroir dans une chaîne de connexion du serveur SQL:

Data Source=myServerAddress; 
Failover Partner=myMirrorServerAddress; 
Initial Catalog=myDataBase; 
Integrated Security=True; 

(de here)

+0

Voir modification. Je vous remercie! –

0

D'après ce que je lis [here] vous pouvez créer un partitionResolverType pour vous donner le contrôle sur la chaîne de connexion à l'exécution. Je ne l'ai pas vérifié, mais je suis actuellement à la recherche du même contrôle sur la chaîne de connexion et cela semble faire l'affaire.