SSIS错误代码DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER。在BIDS和cmd上运行正常,但API调用失败

时间:2014-06-20 17:55:36

标签: c# excel ssis sql-server-2008-r2 bids

我知道之前已经问了很多次,我想我几乎阅读了所有相关帖子,但无法解决此错误。

我有一个SSIS包,它在我的本地系统上读取Excel文件(数据流源),并使用OLEDB目标数据流项将数据传输到SQL Server本地数据库,其间涉及派生列和数据转换步骤。我已经设定了:

Run64BitRuntime为False

支持TransactionOption

DelayValidation为True(数据流任务和连接)

ProtectionLevel为DontSaveSensitive(因为我使用的是Windows身份验证)

当没有以管理员身份运行BIDS时,我收到警告“无法打开全局共享内存”(即使我已经添加了我的帐户用户,这也是Windows性能组的管理员)但是程序包执行正常并将excel文件中的所有20K +行导入到表中。从cmd调用它时运行正常。

现在,我的要求是从API调用此包。下面是我用来调用这个包的基本代码:

Package pkg;
Application app = new Application();
DTSExecResult pkgResults;
Variables vars;
string FileName = @"D:\Users\rohit\Documents\Visual Studio 2008\Projects\OutboundPerformance\SalesPerf\ExcelDataInput.dtsx";
pkg = app.LoadPackage(FileName, null);
vars = pkg.Variables;
vars["var_fk_CampaignId"].Value = ddlCampaignName.SelectedValue;
pkgResults = pkg.Execute(null, vars, null, null , null);
if (pkgResults == DTSExecResult.Success)
lblerror.Text = "Package executed";
else
lblerror.Text = "Package failed";

包执行因错误而失败(从SSIS记录到文本文件):

Diagnostic,M02697,IIS APPPOOL\ASP.NET v4.0,Excel Connection Manager,{8EECAC3E-7A77-43E8-AD03-B734D273E489},{2AC52183-188B-4B82-BB67-D5112FE08710},20/06/2014 17:16:40,20/06/2014 17:16:40,0,0x,ExternalRequest_post: 'IDBInitialize::Initialize failed'. The external request has completed.
OnError,M02697,IIS APPPOOL\ASP.NET v4.0,Data Flow Task,{F2934EFE-11E9-4A70-80D6-EB7143A07745},{2AC52183-188B-4B82-BB67-D5112FE08710},20/06/2014 17:16:40,20/06/2014 17:16:40,-1071611876,0x,SSIS Error Code DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER.  The AcquireConnection method call to the connection manager "Excel Connection Manager" failed with error code 0xC0202009.  There may be error messages posted before this with more information on why the AcquireConnection method call failed.

OnError,M02697,IIS APPPOOL\ASP.NET v4.0,ExcelDataInput,{FCEC3902-379C-4D69-9135-0246FC60AEAE},{2AC52183-188B-4B82-BB67-D5112FE08710},20/06/2014 17:16:40,20/06/2014 17:16:40,-1071611876,0x,SSIS Error Code DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER.  The AcquireConnection method call to the connection manager "Excel Connection Manager" failed with error code 0xC0202009.  There may be error messages posted before this with more information on why the AcquireConnection method call failed.

OnError,M02697,IIS APPPOOL\ASP.NET v4.0,Data Flow Task,{F2934EFE-11E9-4A70-80D6-EB7143A07745},{2AC52183-188B-4B82-BB67-D5112FE08710},20/06/2014 17:16:40,20/06/2014 17:16:40,-1073450985,0x,component "Excel Source" (307) failed validation and returned error code 0xC020801C.

我是SSIS的新手,并在错误代码0xC0202009和0xC020801C上进行了互联网研究。我已尝试为excel文件,SQL临时目录和文件(读取和写入)提供IIS_USERS,SQL dts和代理用户的访问权限,并且excel文件未被任何其他进程锁定。我正在运行Windows 7 32位,Run64BitRuntime设置为False。

现在,我已经尝试了两种方法,Windows身份验证和SQL身份验证(选中复选框以保存密码和保护级别设置为EncryptSensitiveWithUserKey)。 BIDS运行包正常,但它失败了,我的Web应用程序调用时出现相同的错误。

1 个答案:

答案 0 :(得分:0)

感谢billinkc指出丢失的链接。 我将我的App Pool的身份改为本地系统,它就像一个魅力。

http://i.imgur.com/yUq6nen.jpg

感谢Vikramsinh Shinde的时间和建议。