0

我在发布 SSDT 数据库项目并将其注册为数据层应用程序时遇到问题。让我解释。

我有一个数据库 (A),它通过链接服务器引用了另外两个数据库 (B & C)。我已经创建了基于 B 和 C 的项目,并对项目进行了快照,以便为数据库 B 和 C 创建 dacpac。我已经为数据库 A 创建了一个数据库项目,它通过 dacpac 对 B 和 C 进行了数据库引用。我已设置 SQLCMD 变量并修改了 db 项目 ddl 脚本以使用 SQLCMD 变量代替未解析的链接服务器名称。项目建成!

我正在尝试将项目发布为数据层应用程序,但不断收到以下错误“注册为 DAC 数据库的数据库必须由 SQL 2005 SP4、SQL 2008 SP2、SQL 2008 R2、SQL 2012 或 SQL Azure 的实例托管” . 顺便说一句,我正在运行 SQL Server 2012。

我想我会测试我是否可以通过 SSMS 注册为数据层应用程序。在 SSMS 中,“注册为数据层应用程序”选项显示为灰色。因此,我尝试“导出数据层应用程序”并收到一些关于链接服务器对象的错误。

我的问题是;是否可以部署 SSDT 数据库项目并将其注册为项目使用链接服务器的数据层应用程序,还是我做错了什么?如果可能的话,有人可以提供一些建议。

我已经打破谷歌寻找答案,所以任何帮助将不胜感激......

4

1 回答 1

0

我最近遇到了这个错误,所以我会为遇到这个问题的其他人添加我的解决方案,已经添加到dba 堆栈交换中

结果在我的 publish.xml 中,我将 RegisterDataTierApplication 设置为 True。我第一次发布数据库时它运行良好,但后来我得到了同样的错误,因为数据库已经注册为数据层应用程序。

通过设置为 false (或取消选中 gui 中的复选框)它可以正常工作。

于 2016-09-08T08:54:53.020 回答