2012-05-30 28 views
1

我正在從共享主機移到虛擬專用服務器(均位於GoDaddy)。令人驚訝的是,一切都很順利,直到現在。但是,現在我的Web應用程序似乎無法連接到數據庫(我在服務器上創建的數據庫)。虛擬專用服務器上的連接字符串不工作

我試了幾個選項,包括給它例如服務器名稱等:

<add name="dbname" connectionString="Data Source=servername\SQLEXPRESS2008;Initial Catalog=theDB;User Id=servername\usernameAcceptedByMangmentStudio;Password=mypwd; Trusted_Connection=False;"/> 

也:

<add name="dbname" connectionString="Data Source=.\SQLEXPRESS2008;Initial Catalog=theDB;User Id=usernameAcceptedByMangmentStudio;Password=mypwd; Trusted_Connection=False;"/> 

也:

<add name="dbname" connectionString="Data Source=servername\SQLEXPRESS2008;Initial Catalog=theDB; Integrated Security=True;> 

(這是怎麼了在我的本地機器上運行)。

似乎沒有任何工作。有任何想法嗎?提前致謝。

+0

''providerName'缺少的方式 – Aristos

+0

您確定實例名是'SQLEXPRESS2008'嗎? GoDaddy的支持不會爲您提供示例連接字符串嗎? –

回答

0

如果您的數據庫具有用戶名和密碼(SQL Server身份驗證)只是簡單地使用這樣的:

<add name="dbname" connectionString="Data Source=yourServerName;Initial Catalog=YourDB;User ID=YouruserId;Password=YourPassWord" providerName="System.Data.SqlClient"/> 

FYI:確保你的數據庫服務器身份驗證是SQL Server和WindowsAuthentication模式

你也可以檢查:Connection strings for SQL Server 2008欲瞭解更多信息。

問候

+0

這當然不適用,如果它是一個命名實例。 –

2

看來你不知道你是否有一個命名實例或默認實例。甚至兩者之間的差異。

首先,我將解釋確定您擁有的最快捷方式,然後我將解釋這些差異。

您需要連接到您的服務器(我假設您可以遠程桌面或類似的東西),然後打開控制面板>管理工具>服務。在該列表中應該有所謂的SQL Server的一個項目,它要麼是這樣的:

的SQL Server(MSSQLSERVER)

或者這樣:

SQL服務器(some_name )

前者是一個默認實例。如果這是您所看到的,那麼連接字符串應該是:

"Data Source=localhost;..." 

後者是一個命名實例。如果這是你所看到的,您的連接字符串應該是:

"Data Source=localhost\some_name;..." 

如果你看到兩個,那麼你需要告訴我們您最初是如何連接到該實例,以創建數據庫(你需要決定哪一個你想使用,因爲你可能不需要兩個)。

如果這沒有幫助,您需要比「不起作用」更具體。你無法連接到服務器或數據庫嗎?什麼是實際的錯誤信息?在創建數據庫時,是否使用了用戶實例/附加文件名功能?你能在Management Studio中顯示連接對話框的屏幕截圖嗎?您的應用程序在服務器上還是在本地計算機上?是否有可能你應該指定IP地址而不是各種本地引用?您是否聯繫了GoDaddy支持您的問題?他們比一個編程Q &一個站點更能夠幫助您,因爲他們可以在10秒內連接到您的服務器,並告訴您應該如何引用SQL Server實例。

至於差異,當您需要安裝多個單獨的SQL Server實例時,通常會使用命名實例。這通常不是生產機器上的要求;在開發機器上更常見,您必須測試多個版本,模擬不同的環境,或在遷移或並行升級過程中暫時使用。默認實例在端口1433上開箱偵聽。命名實例在其他端口上運行,並且通常使用SQL Browser服務爲遠程計算機確定如何連接到它們。

+0

非常感謝你對這個廣泛的照明解釋。 +1如此友善和樂於助人。現在我設法在服務器上安裝並運行應用程序(即在本地使用遠程桌面),這是最棘手的問題。在嘗試了幾個連接字符串之後,我使用了最簡單的一個:。現在,使用調試器運行一切正常。但從另一臺計算機使用瀏覽器訪問網站我沒有得到信息。我會繼續檢查 – dsb

+0

如果你在另一臺電腦上,你不能說''' - 這意味着本地。你的其他服務器應該如何找到你的數據庫服務器?如果你只是說出去到Internet並找到任何SQL Server,它是否也可以找到我的數據庫服務器?您需要指定運行SQL Server的服務器的IP地址或完全限定的域名。所以它應該是類似於'「Data Source = 45.34.22.12 \ SQLEXPRESS2008; ...'您可能還需要進入數據庫服務器並確保啓用TCP/IP(在SQL Server配置管理器中),允許遠程連接,並打開正確的防火牆端口(s)... –

+0

非常感謝你的所有幫助。使用調試器我發現問題是,我沒有允許用戶到數據庫(本地工作,我可以連接Windows憑據)。對於我缺乏知識感到抱歉,我是所有這些的新手,在找到了如何定義一個用戶的所有信息之後,感謝你的幫助, – dsb

相關問題