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版本)下運行。解決方法是配置一個本地屬性文件,該文件包含特定於環境的連接字符串。然後或者在配置文件本身中引用該文件,或者讓您的構建過程的一部分將信息合併到配置文件中。