我在 Visual Studio 2015 中创建了一个包。它工作正常。
基本上我正在使用一个脚本任务来生成 Excel 电子表格并将其发送给不同的用户。
在我将包部署到 SQL Server 2012 并尝试从那里执行它之后 - 我收到一个错误,没有任何进一步的详细信息。
我还select * from internal.packages
从 SSISDB 运行以确保package_format_version
是 6,这应该是 SQL Server 2012。
可能是什么问题呢?
我在 Visual Studio 2015 中创建了一个包。它工作正常。
基本上我正在使用一个脚本任务来生成 Excel 电子表格并将其发送给不同的用户。
在我将包部署到 SQL Server 2012 并尝试从那里执行它之后 - 我收到一个错误,没有任何进一步的详细信息。
我还select * from internal.packages
从 SSISDB 运行以确保package_format_version
是 6,这应该是 SQL Server 2012。
可能是什么问题呢?
这不一定是关于如何解决问题的答案,但它是关于如何修改脚本任务以获得更好的错误消息然后“脚本任务失败:抛出异常......”的答案
我们将始终将脚本任务包装在 try-catch 中,然后从脚本任务中引发异常消息:
public void Main()
{
try
{
//Your code here
Dts.TaskResult = (int)ScriptResults.Success;
}
catch (Exception ex)
{
Dts.Events.FireError(-1, "", ex.Message, String.Empty, 0);
Dts.TaskResult = (int)ScriptResults.Failure;
}
}
这始终是一个挑战,尤其是对于已部署的 SSIS 包,当它在脚本任务上出错时,您不一定能清楚地表明它失败的原因,并且您会收到一条神秘的错误消息。上面的代码将捕获引发异常的原因并将其返回给集成服务。
您可能需要确保在 SSIS 服务器上安装了“Microsoft Access Database Engine 2010 Redistributable”驱动程序。你可以在这里得到它。