部署后 SSIS 包出错 SQL Server 2012
SSIS package gives error after deployment SQL Server 2012
我在 Visual Studio 2015 年创建了一个包。它运行良好。
基本上,我使用的是生成 Excel 电子表格并将其发送给不同用户的脚本任务。
在我将包部署到 SQL Server 2012 然后尝试从那里执行它之后 - 我收到一个没有任何进一步详细信息的错误。
我还从 SSISDB 运行 select * from internal.packages
确保 package_format_version
为 6,这应该是 SQL Server 2012 的值。
可能是什么问题?
您可能需要确保 "Microsoft Access Database Engine 2010 Redistributable" 驱动程序已安装在 SSIS 服务器上。你可以得到它 here.
这不一定是关于如何解决问题的答案,但它是关于如何修改脚本任务以获得比 "Script Task Failure: Exception has been thrown..."
更好的错误消息的答案
我们总是将脚本任务包装在 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 程序包,当它在脚本任务中出错时,您不一定会清楚地知道失败的原因,并且会收到一条神秘的错误消息。上面的代码将捕获抛出异常的原因并将其返回到集成服务。
我在 Visual Studio 2015 年创建了一个包。它运行良好。
基本上,我使用的是生成 Excel 电子表格并将其发送给不同用户的脚本任务。
在我将包部署到 SQL Server 2012 然后尝试从那里执行它之后 - 我收到一个没有任何进一步详细信息的错误。
我还从 SSISDB 运行 select * from internal.packages
确保 package_format_version
为 6,这应该是 SQL Server 2012 的值。
可能是什么问题?
您可能需要确保 "Microsoft Access Database Engine 2010 Redistributable" 驱动程序已安装在 SSIS 服务器上。你可以得到它 here.
这不一定是关于如何解决问题的答案,但它是关于如何修改脚本任务以获得比 "Script Task Failure: Exception has been thrown..."
更好的错误消息的答案我们总是将脚本任务包装在 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 程序包,当它在脚本任务中出错时,您不一定会清楚地知道失败的原因,并且会收到一条神秘的错误消息。上面的代码将捕获抛出异常的原因并将其返回到集成服务。