ASP.NET MVC 連接到 mssql 伺服器時連接字元串不正確
我使用 mssql 數據庫在 ASP.NET MVC4 上建構了我的網站,我將它部署在我的本地 IIS 7 伺服器上並且它工作正常,但是當我在虛擬伺服器 hostgator.com 上執行完全相同的操作時,它會拋出這個錯誤。
並嘗試了 1000 個連接字元串,但仍然沒有成功。
這很奇怪,因為我在本地機器上做了同樣的操作,但它仍然無法連接到伺服器。
我過去 24 小時都在處理這個問題,但我找不到這個問題的解決方案。
我已經聯繫了技術支持,他們說這超出了他們的支持範圍,他們無法幫助我解決這個問題。
我已經盡一切努力讓這個錯誤消失,因為我在本地機器上遇到了同樣的錯誤,但是當我正確配置它時,它可以正常工作,而不是在虛擬伺服器上。
- 防火牆已關閉
- 在 sql 配置中啟用了遠端連接
- 應用程序池設置為網路服務
- 我在管理工作室中添加了網路服務作為新登錄名,可以訪問數據庫
錯誤
建立與 SQL Server 的連接時發生與網路相關或特定於實例的錯誤。伺服器未找到或無法訪問。驗證實例名稱是否正確以及 SQL Server 是否配置為允許遠端連接。(提供者:SQL 網路介面,錯誤:26 - 錯誤定位伺服器/指定的實例)
所以基本上問題不在於 web.config 中的連接字元串,而是實體框架的問題。
我們開始在 localhost 上開發我們的項目,完成後我們在 hostgator.com 上部署了站點,問題是,entityframework 控制了所有連接字元串,因此在 web.config 中更改任何內容都沒有用。
這是我們找到解決方案的地址:http: //msdn.microsoft.com/en-us/library/bb739017.aspx
這是解決方案:
namespace Finance.Models { // This constructor is the solution public class FinanceDataContext : DbContext { public FinanceDataContext() { this.Database.Connection.ConnectionString = "Data Source=servername;Initial Catalog=databasename;User ID=sql_username;Password=**********"; } public DbSet<Administrator> Administrators { get; set; } public DbSet<News> News { get; set; } public DbSet<User> Users { get; set; } public DbSet<Plan> Plans { get; set; } public DbSet<Withdraw> Withdraws { get; set; } } }
沒有這方面的資訊,我們純屬運氣偶然發現了實體框架中的一些錯誤,30 分鐘後得到實體框架正在控制與數據庫的連接的想法。
我 100% 肯定有人會遇到同樣的問題,所以如果您可以編輯此問題,以便所有人都能看到。