SSIS-无法部署项目错误27203

问题描述

我在Visual Studio 2019中构建了一个非常简单的SSIS包。这是用于在线培训课程的,因此它没有什么复杂的-只是将文件一个位置复制到另一个位置。然后,培训课程将继续在sql Server上部署程序包。我正在使用的sql Server(版本15.0.2000.5)在笔记本电脑上-我并没有尝试连接到任何类型的生产服务器或什至是我的机器外部的任何设备。编辑:SELECT @@ Version生成以下内容:> Microsoft sql Server 2019(RTM)-15.0.2000.5(X64)Sep 24 2019 13:48:23>版权(C)2019 Windows上的Microsoft Corporation Developer Edition(64位) > 10 Enterprise 10.0(内部版本18362:)

在任何情况下,部署向导都会到达部署的最后步骤,然后失败。加载项目-已通过,与目标服务器的连接-已通过,更改保护级别-已通过,正在部署项目-失败。错误消息是: 无法部署项目。有关更多信息,请在operation_messages视图中查询操作标识符“ 8”。 (Microsoft sql Server,错误:27203)

到目前为止,我对这个问题的研究使我运行查询以查看operation_messages。

我跑了select * from SSISDB.catalog.operation_messages 没有结果。对于为什么没有结果的进一步研究表明,权限可能有错误。我玩了一段时间,但仍然无法成功部署该程序包(我不确定如何检查权限设置是否正确,但我尝试了)。此外,因为一切都在我的单机上发生,所以权限不是很好吗?

无论如何,我还研究了错误27203,但响应似乎与我的情况不符,因为1)它们太旧并且使用了Visual Studiosql Server的较旧版本,或者2)涉及连接到sql Server。 (同样,我的服务器在我的计算机上)。

所以我不确定接下来还要检查什么。我似乎无法通过operation_messages来找到关于发生问题的更好的描述。而且我无法获得任何与错误27203似乎与我的情况非常相符的信息。

直接从SSMS部署具有相同的结果。

如果有帮助,这是错误对话框的屏幕截图。我正在处理的程序包的XML代码仅转到第85行。XML代码中没有第139行。

Picture of error info

以及SSMS的“关于”屏幕的屏幕截图

About Screen

由于这仅是为了培训,因此甚至有必要将软件包部署到服务器吗?如果您要安排程序包定期运行,则似乎有必要部署程序包。但是我可以创建SSIS包,将数据毫无问题地写入服务器。创建完它们之后,我只是从Visual Studio中执行软件包,如果我从来没有真正计划过要运行的软件包,那就没问题了,也许我可以跳过这部分关于部署软件包的事情。

预先感谢任何方向。

PS-如果解决问题的方法涉及某个地方的设置更改,我将继续讨论。在我学习的这一点上,我宁愿不使用诸如通过命令行等的变通方法进行部署。

解决方法

检查所连接的服务器上是否正在运行SQL Server Integration Services服务。由于您没有SSISDB.catalog.operation_message的结果,我怀疑该服务已停止。

开始>运行> services.msc。

根据您的SQL Server版本,查找SSIS服务并检查其是否运行。

SQL Server        Service Name
SQL 2008          MsDtsServer100
SQL 2012          MsDtsServer110
SQL 2014          MsDtsServer120
SQL 2016          MsDtsServer130
SQL 2017          MsDtsServer140
SQL 2019          MsDtsServer150

也;如果您的软件包使用参数,请转到“参数”标签,并确保为每个参数设置了默认值。

,

我遇到了这个错误(并且把我的头发拉了出来)——即使我在 operation_message 视图中没有任何行,但在 [catalog].[operations] 中有一行。我注意到 server_name 是机器的旧名称。对于 [catalog].[operations] 中最近成功的部署,server_name 是机器的当前名称。

我还注意到 SELECT @@SERVERNAME 和 SELECT SERVERPROPERTY('SERVERNAME') 都返回了机器的旧名称。 (通常@@SERVERNAME 会使用旧名称,但 SERVERPROPERTY('SERVERNAME') 会使用当前名称)。

所以我跑了

exec sp_dropserver 'old_name';
GO
exec sp_addserver 'current_name';
GO

并重新启动 SQL 服务,然后部署工作。

,

当我更改 MSSQL ServerEC2 的计算机名称时,我开始出现这种情况。它仍然将服务器名称记录为原始计算机名称而不是新名称。我用以下命令解决了这个问题:

EXEC sp_dropserver 'oldservername';  
GO  
EXEC sp_addserver 'newservername',local;  
GO