0

我有一个部署在机器上的WCF服务。此WCF服务可以配置为SQL Server或SQL Server Express。我们可以有SQL Server和SQL Server Express的通用连接字符串吗?

注意: SQL数据库位置可以是其他计算机位置,而不是WCF服务的部署位置。在XML文件

我把下列信息:

  1. 用户ID
  2. 密码
  3. 服务器名
  4. 计算机名

在SQL Server Express的

情况

服务器名称属性是“SQLEXPRESS”。在内部我追加服务器名与计算机名,因此服务器名是:

计算机名\ SQLEXPRESS这是传递给连接字符串

在SQL Server

的情况下,当我通过服务器名到SQL Server,它抛出异常。

请指导我的最佳方法!

+0

你能告诉我们的那些设置2 - 1为SQL Server和一个Express版本 - 和告诉我们结果连接字符串是什么? – 2009-10-23 14:46:30

回答

0

什么是例外?另外我不确定ServerName和MachineName之间有什么不同。也许你的意思是ServerName和InstanceName?您应该构建您的字符串这样(伪代码,我不知道你使用的是什么语言):

DataSource = ServerName 
If (InstanceName != "") 
    DataSource += "\" + InstanceName 
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; 
0

最可能的原因是因为你的MSSQLSERVER的实例的默认实例而不是命名实例(这是SQL Express版本)下运行。解决方法是配置一个本地属性文件,该文件包含特定于环境的连接字符串。然后或者在配置文件本身中引用该文件,或者让您的构建过程的一部分将信息合并到配置文件中。