从asp.net错误64位excel执行SSIS

时间:2012-11-19 06:37:21

标签: asp.net excel ssis 32bit-64bit

背景

我已经实现了一个asp.net Web应用程序,它从磁盘执行SSIS包。这在调试时从visual studio运行时有效,但一旦发布到服务器,就会在下面的错误中抱怨64位SSIS。

我看过很多关于解决方案的帖子,但我不确定我的方案中最适合的解决方案。我可以完全访问Web服务器和asp.net c#应用程序代码,对此版本的数据库服务器进行有限访问。

错误: * SSIS错误代码DTS_E_OLEDB_EXCEL_NOT_SUPPORTED:64位版本的SSIS不支持Excel连接管理器,因为没有可用的OLE DB提供程序。 SSIS错误代码DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER *

C#代码

        string pkgLocation;
        Package pkg;
        Application app;
        DTSExecResult pkgResults;
        string result = string.Empty;
        string dtsErrors = string.Empty;

        try
        {
            pkgLocation = packagePath;
            app = new Application();
            pkg = app.LoadPackage(pkgLocation, null);
            pkgResults = pkg.Execute();

            //Add any errors to string for notifying user
            foreach (DtsError local_DtsError in pkg.Errors)
                dtsErrors += " " + local_DtsError.Description;

            result = pkgResults.ToString();
        }
        catch (Exception exception)
        {
            result = exception.Message;
        }

潜在决议(请帮助提出建议)

  • 以32位进程运行SSIS(我该如何操作并在我的情况下工作?)

  • 为excel / access安装64位驱动程序,并使用带有openrowset的sql存储过程来获取我的数据而不是SSIS。我不确定这个,我需要数据库服务器和Web服务器上的驱动程序吗?此外,我需要让数据库管理员打开他们可能不适合的即席查询。这是我在当地工作的司机,但后来它已经在原地工作了.. http://blog.codefluententities.com/2011/01/20/microsoft-access-database-engine-2010-redistributable/

  • 我还没有提到任何其他修复,这看起来像粗糙的黑客......?

3 个答案:

答案 0 :(得分:3)

它依赖于Excel驱动程序,默认情况下Excel驱动程序是32位。如果您在64位操作系统上尝试应用程序,那肯定会出错。

要解决此问题,请转到项目属性>调试>调试选项  并将 Run64bitruntime 设置为 False 。查看更多here

答案 1 :(得分:3)

我的解决方案是以32位模式运行iis应用程序池。

Nopte在我的asp.net页面上工作之后,我认为这只能在托管该网站的服务器上的浏览器中运行。这是我的帖子,关于在任何点击此服务器的客户端上使用broswer工作:SSIS package from ASP.net does not work on client but does on server

答案 2 :(得分:2)

这取决于您执行包的方式,但有一个属性可以设置执行前强制32位运行时。在Integration Services目录(SSIS 2012)中,它在执行时的高级选项卡下有一个32位运行时复选框。

enter image description here

作为Excel,您将不得不以32位运行,因为不支持64位Excel驱动程序。这可以帮助您SSIS 32 and 64 Bit - Todd McDermid

picture source