Peut-on avoir une chaîne de connexion généralisée pour SQL Server et SQL Server Express?
-
06-07-2019 - |
Question
J'ai un service WCF déployé sur une machine. Ce service WCF peut être configuré sur SQL Server ou SQL Server Express.
REMARQUE: L'emplacement de la base de données SQL peut être une autre machine que celle où le service WCF est déployé.
Je mets les informations suivantes dans un fichier XML:
- identifiant utilisateur
- mot de passe
- Nom du serveur
- Nom de la machine
Dans le cas de SQL Server Express
La propriété Nom du serveur est "SQLEXPRESS". En interne, j'ajoute ServerName avec MachineName pour que le nom du serveur soit:
Nom_ordinateur \ SQLEXPRESS
qui est passé à la chaîne de connexion.
Dans le cas de SQL Server
Lorsque je passe Nom du serveur à SQL Server, une exception est générée.
Merci de me guider pour la meilleure approche !!
La solution
Quelle est l'exception? De plus, je ne suis pas sûr de la différence entre ServerName et MachineName. Peut-être que vous vouliez dire ServerName et InstanceName? Vous devriez construire votre chaîne de cette façon (pseudo-code, je n'ai aucune idée du langage que vous utilisez):
DataSource = ServerName
If (InstanceName != "")
DataSource += "\" + InstanceName
Autres conseils
Vous pouvez utiliser le même format de chaîne de connexion pour vous connecter à SQL Server Express et aux éditions complètes.
Assurez-vous simplement que vous utilisez la chaîne appropriée. Une telle opération serait courante pour les installations DEFAULT.
Data Source=MachineName\SQLExpress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;
et pour SQL Server complet
Data Source=MachineName;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;
La raison la plus probable est que votre instance de MSSQLSERVER s'exécute sous l'instance par défaut plutôt que sur une instance nommée (comme le fait SQL Express). Une solution consiste à configurer un fichier de propriétés local contenant la chaîne de connexion spécifique à l'environnement. Ensuite, référencez le fichier dans le fichier de configuration lui-même ou demandez à une partie de votre processus de construction d’incorporer les informations dans le fichier de configuration.