无法与 SQL 服务器的数据库建立连接
Unable to establish a connection to a database of SQL Server
当连接到 SQL 网络或特定实例时发生服务器错误
服务器未找到或不可用。
验证实例名称拼写是否正确
SQL 服务器允许远程连接。
提供商:SQL 网络接口,错误:26 -
错误检测指定的服务器或实例。
数据库的连接字符串:
<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>
此错误的常见原因:
- 连接字符串中指定的服务器不存在(拼写错误等)
- 服务器不可用(离线等)[=21=]
- 服务器无法访问(尝试 ping 主机名以验证前 3 个)
- 服务器未配置为允许网络访问
- Windows 防火墙(或其他安全软件)阻止访问 SQL 服务器端口
- SQL 服务器实例名称未指定或不正确(在上面的示例中,除非您使用服务器上的默认实例,否则连接将失败)
如果您使用 SQL Express,您可能应该将 "SQLEXPRESS" 作为服务器的实例名称。
确保您的数据库引擎正在接受远程连接:
- 开始 > 所有程序 > SQL Server 2012 > 配置工具 > SQL 服务器外围应用配置
- 单击服务和连接的外围应用配置
- Select 遇到问题的实例 > 数据库引擎 >
远程连接
- 启用本地和远程连接
- 重启实例
在SQL服务器配置中启用TCP/IP:
- 转到开始 > 所有程序 > Microsoft SQL Server 2012 > 配置工具 > SQL 服务器配置管理器 > Select TCP/IP.
- 右键单击 select 启用
确保 SQL 浏览器服务是 运行:
- 在“开始”菜单上,右键单击 我的电脑,然后单击 管理。
- 在计算机管理中,展开服务和应用程序,然后
单击 服务。
- 在服务列表中,双击SQL服务器浏览器。
- 在 SQL 服务器浏览器属性 window 中,单击 开始 或 停止 。
当服务启动或停止时,单击确定。
配置您的 windows 防火墙以允许访问:
- 在“开始”菜单上,单击 运行,键入 WF.msc,然后单击 确定.
- 在 Windows 高级安全防火墙的左窗格中,
右键单击 入站规则 ,然后在操作窗格中单击 新建规则 。
- 在规则类型对话框中,select端口,然后点击下一步.
- 在协议和端口对话框中,selectTCP。 Select具体
本地端口,然后键入实例的端口号
数据库引擎,例如默认实例的 1433。单击下一步。
- 在操作对话框中,select允许连接,然后点击
下一个.
- 在 配置文件 对话框中,select 描述
当你想连接到的计算机连接环境
数据库引擎,然后单击 下一步。
- 在 Name 对话框中,输入此规则的名称和描述,
然后单击 完成。
当连接到 SQL 网络或特定实例时发生服务器错误
服务器未找到或不可用。 验证实例名称拼写是否正确 SQL 服务器允许远程连接。 提供商:SQL 网络接口,错误:26 - 错误检测指定的服务器或实例。
数据库的连接字符串:
<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>
此错误的常见原因:
- 连接字符串中指定的服务器不存在(拼写错误等)
- 服务器不可用(离线等)[=21=]
- 服务器无法访问(尝试 ping 主机名以验证前 3 个)
- 服务器未配置为允许网络访问
- Windows 防火墙(或其他安全软件)阻止访问 SQL 服务器端口
- SQL 服务器实例名称未指定或不正确(在上面的示例中,除非您使用服务器上的默认实例,否则连接将失败)
如果您使用 SQL Express,您可能应该将 "SQLEXPRESS" 作为服务器的实例名称。
确保您的数据库引擎正在接受远程连接:
- 开始 > 所有程序 > SQL Server 2012 > 配置工具 > SQL 服务器外围应用配置
- 单击服务和连接的外围应用配置
- Select 遇到问题的实例 > 数据库引擎 > 远程连接
- 启用本地和远程连接
- 重启实例
在SQL服务器配置中启用TCP/IP:
- 转到开始 > 所有程序 > Microsoft SQL Server 2012 > 配置工具 > SQL 服务器配置管理器 > Select TCP/IP.
- 右键单击 select 启用
确保 SQL 浏览器服务是 运行:
- 在“开始”菜单上,右键单击 我的电脑,然后单击 管理。
- 在计算机管理中,展开服务和应用程序,然后 单击 服务。
- 在服务列表中,双击SQL服务器浏览器。
- 在 SQL 服务器浏览器属性 window 中,单击 开始 或 停止 。 当服务启动或停止时,单击确定。
配置您的 windows 防火墙以允许访问:
- 在“开始”菜单上,单击 运行,键入 WF.msc,然后单击 确定.
- 在 Windows 高级安全防火墙的左窗格中, 右键单击 入站规则 ,然后在操作窗格中单击 新建规则 。
- 在规则类型对话框中,select端口,然后点击下一步.
- 在协议和端口对话框中,selectTCP。 Select具体 本地端口,然后键入实例的端口号 数据库引擎,例如默认实例的 1433。单击下一步。
- 在操作对话框中,select允许连接,然后点击 下一个.
- 在 配置文件 对话框中,select 描述 当你想连接到的计算机连接环境 数据库引擎,然后单击 下一步。
- 在 Name 对话框中,输入此规则的名称和描述, 然后单击 完成。