无法建立与SQL Server数据库的连接

时间:2015-01-22 13:25:51

标签: c# asp.net-mvc sql-server-2012

连接到SQL Server时,网络或特定实例发生错误

The server was not found or is not available.
Verify that the instance name is spelled correctly 
and that SQL Server allow remote connections. 

provider: SQL Network Interfaces, error: 26 - 
Error detection specified server or instance.

数据库的连接字符串:

<add name="RequirementContext" 
    connectionString="Data Source=RU-DEV24;Initial Catalog=OpenSoft.AgileAnalytics.EF;Integrated Security=True;MultipleActiveResultSets=True"
    providerName="System.Data.SqlClient" />

我无法理解,这就是发生此错误的原因。求救!

错误的代码

public class Permission
    {
        public string RoleString
        {
            get
            {
                return string.Join(", ", UserRoles);
            }
        }

        public int UserId { get; set; }

        public string UserName { get; set; }

        public List<string> UserRoles { get; set; }

        public static Permission CreateFromUserProfile(UserProfile userProfile)
        {
            //here
            return new Permission
            {
                UserId = userProfile.UserId,
                UserName = userProfile.UserName,
                UserRoles = Roles.GetRolesForUser(userProfile.UserName).ToList(),
            };
        }
    }

!!!! 问题解决了。我刚刚将web.config文件添加到文件中:

<roleManager enabled="true" defaultProvider="SimpleRoleProvider">
      <providers>
        <clear />
        <add name="SimpleRoleProvider" type="WebMatrix.WebData.SimpleRoleProvider,WebMatrix.WebData" />
      </providers>
    </roleManager>
    <membership defaultProvider="SimpleMembershipProvider">
      <providers>
        <clear />
        <add name="SimpleMembershipProvider" type="WebMatrix.WebData.SimpleMembershipProvider, WebMatrix.WebData" />
      </providers>
    </membership>

2 个答案:

答案 0 :(得分:1)

确保您的数据库引擎正在接受远程连接:

  • 开始&gt; 所有程序&gt; SQL Server 2012 &gt; 配置工具&gt; SQL Server表面区域配置
  • 单击服务和连接的表面区域配置
  • 选择面临问题的实例&gt;数据库引擎&gt; 远程连接
  • 启用本地和远程连接
  • 重新启动实例

在SQL Server配置中启用TCP / IP:

  • 转到开始&gt; 所有程序&gt; Microsoft SQL Server 2012 &gt; 配置工具&gt; SQL Server配置管理器&gt;选择 TCP / IP
  • 右键单击并选择启用

确保SQL Browser服务正在运行:

  • 在“开始”菜单上,右键单击我的电脑,然后单击管理
  • 计算机管理中,展开服务和应用程序,然后展开 点击服务
  • 在服务列表中,双击 SQL Server Browser
  • 在“SQL Server浏览器属性”窗口中,单击开始停止。 当服务开始或停止时,请单击确定

配置Windows防火墙以允许访问:

  • 在“开始”菜单上,单击运行,键入 WF.msc ,然后单击确定
  • 在具有高级安全性的Windows防火墙的左窗格中, 右键单击入站规则,然后单击操作窗格中的新规则
  • 规则类型对话框中,选择端口,然后点击下一步
  • 协议和端口对话框中,选择 TCP 。选择特定 本地端口,然后键入该实例的端口号 数据库引擎,例如 1433 ,用于默认实例。点击下一步
  • 操作对话框中,选择允许连接,然后单击“确定”。 下一步即可。
  • 配置文件对话框中,选择描述该配置文件的任何配置文件 要连接到的计算机连接环境 单击数据库引擎,然后单击下一步
  • 名称对话框中,键入此规则的名称和说明, 然后单击完成

答案 1 :(得分:0)

此错误的常见原因:

  1. 连接字符串中指定的服务器不存在(拼写错误等)
  2. 服务器不可用(离线等)
  3. 无法访问服务器(尝试ping主机名以验证前3个)
  4. 服务器未配置为允许网络访问
  5. Windows防火墙(或其他安全软件)阻止访问SQL Server端口
  6. 未指定或不正确的SQL Server实例名称(在上面的示例中,除非您在服务器上使用默认实例,否则连接将失败)
  7. 如果您使用的是SQL Express,则应该将“SQLEXPRESS”作为服务器的实例名称。