连接到 mssql 服务器时 ASP.NET MVC 连接字符串不正确

连接到 mssql 服务器时 ASP.NET MVC 连接字符串不正确

我使用 mssql 数据库在 ASP.NET MVC4 上构建了我的网站,并将其部署到我的本地 IIS 7 服务器上并且运行良好,但是当我在虚拟服务器 hostgator.com 上执行完全相同的操作时,它会抛出这个错误。

并尝试了 1000 个连接字符串,但仍然没有成功。

这很奇怪,因为我在本地机器上执行了完全相同的程序,但仍然无法连接到服务器。

我已经解决这个问题 24 个小时了,但我找不到这个问题的解决方案。

我已经联系了技术支持,他们说这超出了他们的支持范围,他们无法帮助我。

我已尽一切努力使该错误消失,因为我在本地机器上遇到了同样的错误,但是当我正确配置它时,它就可以正常工作,但在虚拟服务器上却不行。

  • 防火墙已关闭
  • sql 配置中启用了远程连接
  • 应用程序池设置为网络服务
  • 我已在管理工作室中添加网络服务作为新的登录名,可以访问数据库

错误

建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。(提供程序:SQL 网络接口,错误:26 - 定位指定的服务器/实例时出错)

答案1

所以基本上问题不在于 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 分钟后我们发现实体框架正在控制与数据库的连接。

我百分之百确定有人会遇到同样的问题,所以如果你可以编辑这个问题,那么每个人都可以看到它。

相关内容