Sql server 将SQL Server实例配置为(本地)

Sql server 将SQL Server实例配置为(本地),sql-server,connection-string,local,Sql Server,Connection String,Local,我们开发团队的每个成员都有一份应用程序数据库的副本,该数据库运行在本地版本的SQL Server 2008 Enterprise SP1上。每个人都可以通过在web.config文件中指定自己的服务器和实例名称来访问数据库,但为了更好地共享web.config文件的开发人员版本,我们已经通过使用集成安全性和将服务器属性设置为(本地)来标准化连接字符串的通用性。此策略在我们的大多数64位Windows 7计算机上运行良好,但在少数情况下(本地)无法识别。我们通过SQL Server配置管理器比较了

我们开发团队的每个成员都有一份应用程序数据库的副本,该数据库运行在本地版本的SQL Server 2008 Enterprise SP1上。每个人都可以通过在web.config文件中指定自己的服务器和实例名称来访问数据库,但为了更好地共享web.config文件的开发人员版本,我们已经通过使用集成安全性和将服务器属性设置为(本地)来标准化连接字符串的通用性。此策略在我们的大多数64位Windows 7计算机上运行良好,但在少数情况下(本地)无法识别。我们通过SQL Server配置管理器比较了设置(即确保启用了命名管道协议),并尝试通过SQL Server客户端网络实用程序设置“(本地)”别名,但我们没有任何运气。在我们的连接字符串中使用(本地)需要做什么

那些数据库连接为(本地)不起作用的机器可能是这样的,因为在数据库安装过程中,实例名称被设置为特定的名称,而不是默认的“默认实例”。您可以更改这些实例名称,这可能会解决以下问题:


我认为当您已经安装并运行SQL Server Express,然后安装SQL Server Developer Edition/Standard/etc时,就会发生这种情况……虽然不是100%确定,但据我回忆,可能是这样

正在尝试将实例的管道名称更改为“\。\Pipe\sql\query”

通过启动SQL Server Configuration Manager,导航到SQL Server Network Configuration>Protocols for(实例名称),右键单击命名管道并选择属性,可以找到该设置。如果未启用命名管道,请确保在重新启动SQL Server服务之前启用它(请参阅@noaheldman的注释)


连接到默认实例(即,没有实例名称)时,SQL Server使用默认端口1433和默认管道名称“\。\pipe\SQL\query”。将其更改回匹配应该(希望)修复它。

这些计算机是否运行多个SQL Server引擎(例如,Express版和enterprise版)?在这种情况下,还需要指定一个实例名。我认为
(本地)
总是使用共享内存。问得好。只有SQL Server 2008正在运行。SQL Express已安装但未运行。@Oded-我认为如果使用了
(本地)
,或
而不是机器名,它将始终使用共享内存协议,而不是命名管道。我想我几年前在一个SQL Server性能网站上读到过这篇文章,所以它很可能是完全错误的!好建议。我尝试更改实例名称,但没有成功。我现在倾向于你后面的评论。在工作机器上,要么没有安装Express,要么我们认为它是在SQL.Yep的完整版本之后安装的。成功了。谢谢你的帮助,杰夫。在我的书中,你已经是一个受欢迎的补充。我在一台机器上也有同样的问题,这对我也很有用。谢谢我尝试了这些相同的步骤,结果在尝试启动SQL Server服务时出现了一系列错误,包括“名为管道提供程序的服务器未能侦听[\\.\pipe\SQL\query]。错误:0x57”。这是因为在我尝试启动服务时命名管道被禁用。要修复此问题,只需将旧值放回管道名称字段(类似\\.\pipe\mssql$\sql\query),启动并停止服务,然后替换为\\.\pipe\sql\query,然后再次启动服务。至少,这对我有用。。。