是否有方法从另一个构建为“SSIS”的项目在32位运行时运行SSIS包;任何CPU“;输出?
我有一个SSIS包,其中我从csv读取数据并将其转储到excel文件(.xls)。起初,它不起作用,我不得不将SSIS项目64位运行时属性更改为false以使其起作用是否有方法从另一个构建为“SSIS”的项目在32位运行时运行SSIS包;任何CPU“;输出?,ssis,Ssis,我有一个SSIS包,其中我从csv读取数据并将其转储到excel文件(.xls)。起初,它不起作用,我不得不将SSIS项目64位运行时属性更改为false以使其起作用 我需要从另一个windows服务调用这个包,该服务构建为“任意CPU”输出。当我这样做时,我得到相同的64位运行时错误,包失败。我无法将服务的运行时更改为x86/x64。是否有一个解决方案可以让我告诉包它需要从服务在32位运行时执行?尝试将此属性设置为false(在解决方案的属性上): 另外,请记住,Dtexec、dtutil和
我需要从另一个windows服务调用这个包,该服务构建为“任意CPU”输出。当我这样做时,我得到相同的64位运行时错误,包失败。我无法将服务的运行时更改为x86/x64。是否有一个解决方案可以让我告诉包它需要从服务在32位运行时执行?尝试将此属性设置为false(在解决方案的属性上):
另外,请记住,Dtexec、dtutil和SQL Server导入和导出向导同时具有64位和32位应用程序。请务必注意,如果在32位环境中开发包,并希望在64位环境中运行包,则连接管理器需要符合64位标准。某些连接管理器(如Excel)只能在32位环境中工作。可以通过EXEC命令强制执行32位:
EXEC SSISDB.catalog.create_execution
@folder_name = @p_yourFolder,
@project_name = @p_yourProject,
@package_name = @p_yourProcess,
@reference_id = @v_yourReferenceId,
@use32bitruntime = 1, --To force 32 bit runtime
@execution_id = @r_SSISDB_ExecutionID OUTPUT;
或者通过Configuration\Advanced properties中的SQL代理,其中有一个可用的«以32位模式运行»复选框。据我所知,包将在与其父级相同的过程中执行。您可以通过在单独的(x86)进程中执行包来解决这个问题。@JeroenBolle:是的,您是对的。我必须将父服务更改为在x86平台上运行才能使其正常工作。