我有一台部署在计算机上的WCF服务。此WCF服务可以配置为SQL Server或SQL Server Express。
注意: SQL数据库位置可以是部署WCF服务的其他计算机。
我将以下信息放在XML文件中:
如果是SQL Server Express
ServerName 属性为“SQLEXPRESS”。在内部,我使用MachineName附加ServerName,因此serverName为:
计算机名\ SQLEXPRESS
传递给连接字符串。
如果是SQL Server
当我将 ServerName 传递给SQL Server时,它会抛出异常。
请指导我选择最佳方法!!
答案 0 :(得分:1)
您可以使用相同的连接字符串格式连接到SQL Server Express和完整版。
确保您正在使用正确的字符串,对于DEFAULT安装,这样的事情很常见。
Data Source=MachineName\SQLExpress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;
和完整的SQL Server
Data Source=MachineName;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;
答案 1 :(得分:0)
最可能的原因是因为您的MSSQLSERVER实例在默认实例下运行而不是命名实例(这是SQL Express所做的)。解决方法是配置一个本地属性文件,该文件包含特定于环境的连接字符串。然后在配置文件本身中引用该文件,或者让部分构建过程将信息合并到配置文件中。
答案 2 :(得分:0)
有什么例外?另外我不确定ServerName和MachineName之间的区别。也许你的意思是ServerName和InstanceName?你应该用这种方式构造你的字符串(伪代码,我不知道你正在使用什么语言):
DataSource = ServerName
If (InstanceName != "")
DataSource += "\" + InstanceName