我正在与一组开发人员合作,他们在不同的地方安装了 SQL 实例。为了让我们的本地机器有一个配置文件(而不是为每台机器都有一个配置文件),我们试图处理安装了实例名称、没有实例名称等的 SQL:
(本地)\SQLEXPRESS
(当地的)\
(本地)\人名
我查看了设置别名重定向的指南,但是当我们创建相同的别名时,比如“MyOldServer”,我在使用 Windows 身份验证连接到不受信任的域时遇到错误。
是否需要将 SQL 重新安装到所有这些机器上的同一个位置?我们如何才能使它们都指向相同的名称(最好是(本地),但我不在乎任何一种方式。
编辑:我的连接字符串(工作)
<add name="masterDb" connectionString="integrated security=true;Data Source=(local);Database=masterDb" />
同事的连接字符串(也在他们的本地机器上工作)
<add name="masterDb" connectionString="integrated security=true;Data Source=(local)\local;Database=masterDb" />
我们想使用一个或另一个,所以我们将一个本地配置检查到源中。我可以更改我们的两个连接字符串……但如果可能的话,我希望我们拥有相同的连接字符串而不安装 SQL。我们正在加载更多的开发人员,让他们都重新安装 SQL 以符合要求将很麻烦。
别名配置(我的机器):
别名:TestAlias 端口号:空白 Portocol:TCP/IP 服务器:localhost
如果我将 TestAlias 添加到我的主机文件,并尝试连接(使用 SQL 配置管理器)到服务器名称:testalias 和 Windows 身份验证,我会收到“登录失败。登录来自不受信任的域,不能与 Windows 身份验证一起使用”
首先,确保 SQL Browser 服务正在您的计算机上运行。别名需要它才能工作。
其次,如果您处于 64 位环境中,请确保将别名添加到 32 位和 64 位 SQL Native Client 配置中。SSMS 使用 32 位客户端。
只要您在别名配置中使用的目标服务器可由客户端解析,您就不需要更改 dns 或主机文件。如果
localhost
用作别名的服务器不起作用,请尝试(local)
改用(尽管localhost
应该可以正常工作)。附带说明一下,如果您使用构建自动化工具,如 rake、psake、nant 等,那么您可以设置构建文件,以根据本地配置设置从模板中为您生成 app.config / web.config。本地设置文件的模板与其他环境(生产、QS、暂存等)的设置文件一起签入源代码管理。然后由本地开发人员维护他们的设置文件。当他们准备好测试时,他们运行生成配置文件的构建。配置模板存储在源代码管理中,而不是实际的配置文件本身。然后,您可以使用自动构建/持续集成服务器(例如 TeamCity 和 CruiseControl.NET)为不同的环境生成构建。如果您不这样做,那么您可能需要研究一下。我提到的所有构建工具都是免费和开源的。CruiseControl.NET 是免费和开源的。TeamCity 是 JetBrains 的商业产品,但对于较小的构建环境,它有一个免费选项。