日前遇到有關資料庫連線的問題,但找了很久似乎沒有遇到類似問題的資料,
所以上來請教各位是否有曾遇過類似的問題? 謝謝。
Server=myServer;Database=myDataBase;User Id=Username;Password=Password;
當使用正常連線字串進行連結,會出現以下錯誤:
建立連接至 SQL Server 時,發生網路相關或執行個體特定的錯誤。找不到或無法存取伺服器。
確認執行個名稱是否正確,以及 SQL Server 是否設定為允許遠端連線。 (provider: Named Pipes Provider, error: 40 - 無法開啟至 SQL Server 的連接)
所以當我後面加上Port號(如myServer後方數字12345所示),就不會出現上述錯誤,才有辦法順利開啟資料庫連線,這有點令人匪夷所思...
Server=myServer,12345;Database=myDataBase;User Id=Username;Password=Password;
不知道有沒有人遇過類似的問題,麻煩各位了,謝謝。
預設 Port 是 1433,假如有更改 Port 的話,連線字串上必須加上 Port 才能進行連線,如同原 PO 測試的結果
你的說法超奇怪的?
改過預設Port,卻又說在其他地方是可正常執行?
就算加了別名。也不能會知道要連哪一個Port吧?
player
請參考:https://dotblogs.com.tw/terrychuang/2012/03/25/71015
透過這樣設定,就可以不用指定Port了
1.C#與資料庫不在同一台?
2.SQL裡設的別名與DNS或hosts裡的主機名重複到?
如果不是使用預設Port時,我多半都會使用ODBC來做驗證及測試。
請參考
ip後面加逗點跟上埠號不就得了?
Server=myServer,11433;Database=myDataBase;User Id=Username;Password=Password;
如果是多個SQL實例,則後面加雙反斜線加實例instance名
string connStringWork = "Data Source=server\\nameOfInstance;Initial Catalog=db;Integrated Security=True;Application Name=ЦС";
SQL Server 不以預設 Prot 來做為連線,這己經是很正常的事情也不用覺得奇怪,而且停用 sa 也會正常的事情。
為什麼要這樣子?? 這一切都是為了防駭客,不管是那家公司都會修改 PROT 不給非公司人員來連線,以免 Server 都在回應駭客是否可以連線,還有猜猜 sa 密碼是什麼,忙都忙翻了也沒有空來回應其他系統的要求。就算是你用雲端資料庫也應該注意,不然,你流量馬上被吃光然後你還要付錢。