SQL 2008 R2 中的重定向别名问题

SQL 2008 R2 中的重定向别名问题

我正在与一个开发人员团队合作,他们在不同的地方安装了 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 端口号:空白 端口号:TCP/IP 服务器:localhost

如果我将 TestAlias 添加到我的 hosts 文件中,并尝试连接(使用 SQL 配置管理器)到服务器名称:testalias 和 Windows 身份验证,我会收到“登录失败。登录来自不受信任的域,不能与 Windows 身份验证一起使用”

答案1

首先,请确保您的机器上正在运行 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 的商业产品,但对于较小的构建环境,它有一个免费选项。

相关内容