【问题标题】:SQL Server Express 2008 using (local) in connection stringSQL Server Express 2008 在连接字符串中使用(本地)
【发布时间】:2010-05-18 00:12:23
【问题描述】:

是否可以连接到 ASP.NET 中服务器名称为(本地)的 SQL Server Express 2008 数据库,例如“server=(local);integrated security=SSPI;database=DBNAME”?

我正在与另一位开发人员合作开发一个项目,因为他使用的是 SQL Server 2008 并且(本地)工作,所以必须拥有 2 个不同版本的 web.config,这很烦人,但我似乎无法做到在本地使用 SQL Server 2008 Express。

数据库与 .NET 代码位于同一台计算机上,以防万一。

谢谢。

【问题讨论】:

  • 您确定您的 SQL Server Express 安装不是命名实例吗?
  • 不,我不确定。我该如何检查?
  • SQL Server Express 安装总是命名。
  • 实例名称是MSSQLSERVER(默认)还是SQLEXPRESS(命名)?您可以在 SQL Server 配置管理器中进行检查。
  • 我不确定这是真的 codeka - 我认为 Express 是默认命名的,但您可以在安装过程中选择使用未命名的实例。

标签: asp.net connection-string sql-server-express


【解决方案1】:

假设你们都安装了默认实例名称“SQLEXPRESS”的 SQL Express,则可以有 1 个连接字符串,例如:

server=.\SQLEXPRESS;integrated security=SSPI;database=DBNAME

连接字符串中的"."用于表示本机。

【讨论】:

  • 我会发布这个作为我的答案,但看起来华莱士首先来到这里。
【解决方案2】:

您可以使用SQL Server Configuration Manager 工具创建别名。在您的两台机器上为别名指定相同的名称,然后您可以在配置文件中引用该别名。

我不知道配置管理器工具是否真的包含在 SQL Server 的 Express 版本中,但如果没有,那么您可以只使用注册表项(它仍然适用于 Express 版本)。只需让您的同事设置别名,然后导出以下注册表项:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Client\ConnectTo

然后您可以在本地计算机上导入该密钥。如果您在 64 位 Windows 上,事情会稍微复杂一些(因为您必须在 64 位 32 位注册表中设置别名)。

【讨论】:

  • 我在 64 位机器上。在 SQL Server 配置管理器中,我在 32 位和 64 位 SQL Native Client 10.0 配置部分下设置了别名。然后使用该别名作为连接字符串中的服务器名称,我收到以下错误:“建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。未找到或无法访问服务器。验证实例名称正确且 SQL Server 配置为允许远程连接。(提供程序:SQL 网络接口,错误:26 - 错误定位服务器/指定实例)"
  • 所以我认为对我造成问题的另一点信息是,我在同一台机器上安装了 2005 的完整版本。当我去 SSMS 并连接到(本地)时,它会将我带到 2005 实例。我还刚刚看到,当我转到我的 2005 实例的 SQL Server 配置管理器时,它现在也列出了别名。我认为卸载 2005 可能会解决我的问题。
  • 另一个关于设置别名的提示...如果是本地主机,您可以使用“命名管道”作为协议。这对我有用,而我无法让 TCP 协议工作,即使启用了协议。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-11
  • 1970-01-01
  • 2019-02-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多