以32位模式执行包 - “无法找到'ISServerExec.exe'的路径”错误 [英] Executing a package in 32bit mode - "The path for 'ISServerExec.exe' cannot be found" error

查看:231
本文介绍了以32位模式执行包 - “无法找到'ISServerExec.exe'的路径”错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

你好,

这是非常神秘的,但我整个上午一直在努力解决这个问题,而且我没有想法。我打赌你们其中一个人已经解决了这个问题...

This is pretty arcane, but I've been struggling with this all morning, and I'm out of ideas. I bet one of you guys have solved this though...

我有一个从Excel读取的软件包。它被部署到目录中。我想以32位模式运行它,因为服务器上有32位ACE OLEDB驱动程序。到目前为止,如此直截了当。

I have a package which reads from Excel. It is deployed to the Catalog. I want to run it in 32bit mode, as the server has the 32bit ACE OLEDB driver on it. So far, so straightforward.

我想在创建代理作业之前给它一个快速执行来测试它,所以我右键单击Catalog to Execute中的包,进入'高级'并且我一检查'32位运行时'框,我收到以下错误:

I want to give it a quick execute to test it before I create the Agent job, so I right-click on the package in the Catalog to Execute, go into 'Advanced' and as soon as I go to check the '32-bit runtime' box, I get the following error:

"'找不到'ISServerExec.exe'的路径。操作现在将退出。"

"The path for 'ISServerExec.exe' cannot be found. The operation will now exit."

我的理解是,当发生这种情况时,我正在调用[SSISDB]。[catalog]。[create_execution],如下所示:

My understanding is that when this occurs, I'm calling [SSISDB].[catalog].[create_execution] like this:

声明@execution_id bigint

EXEC [SSISDB]。[目录]。[create_execution] @ package_name = N'Package.dtsx',@ execution_id = @ execution_id OUTPUT,@ folder_name = N'ETL',@ project_name = N'Test_OK_to_delete',@ use32bitruntime = True,@ reference_id = Null

选择@execution_id

DECLARE @ var0 smallint = 1

EXEC [SSISDB]。[目录]。[set_execution_parameter_value] @ execution_id,  @ object_type = 50,@ parameter_name = N'LOGGING_LEVEL',@ parameter_value = @ var0

EXEC [SSISDB]。[目录]。[start_execution] @execution_id

GO

Declare @execution_id bigint
EXEC [SSISDB].[catalog].[create_execution] @package_name=N'Package.dtsx', @execution_id=@execution_id OUTPUT, @folder_name=N'ETL', @project_name=N'Test_OK_to_delete', @use32bitruntime=True, @reference_id=Null
Select @execution_id
DECLARE @var0 smallint = 1
EXEC [SSISDB].[catalog].[set_execution_parameter_value] @execution_id,  @object_type=50, @parameter_name=N'LOGGING_LEVEL', @parameter_value=@var0
EXEC [SSISDB].[catalog].[start_execution] @execution_id
GO

当然,当我直接执行该sproc时,我得到同样的错误。

and sure enough, when I execute that sproc directly, I get the same error.

I相信这两个(32位)DTExec.exe和(32位)ISServerExec.exe都在这里播放,但我不确定哪个正在调用哪个。它*感觉*就像我正在执行32位DTExec,但是无法找到32位ISServerExec。

I believe that both (the 32bit) DTExec.exe and (the 32bit) ISServerExec.exe are in play here, but I'm not sure which is calling which. It *feels* like I'm executing the 32bit DTExec, but that's unable to find the 32bit ISServerExec.

如果我查看注册表

HKEY_LOCAL_MACHINE / SOFTWARE / Microsoft / Microsoft SQL Server / 120 / SSIS / Setup / DTSPath设置为C:\Program Files \ Microsoft Microsoft SQL Server \\\ n20 \ DTS \,这是64位版本。

HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Microsoft SQL Server/120/SSIS/Setup/DTSPath is set to C:\Program Files\Microsoft SQL Server\120\DTS\ which is the 64bit version.

我错过了一些明显的东西吗?

Am I missing something obvious here?

感谢您的帮助

推荐答案

您好Sam,还要添加32位版本的exe的路径
Hi Sam,Also add the path to the 32 bit version of the exe


这篇关于以32位模式执行包 - “无法找到'ISServerExec.exe'的路径”错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆