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

标签 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;
        }

潜在的解决方案(请提供建议)

  • 将 SSIS 作为 32 位进程运行(我该如何执行此操作以及它是否适合我的情况?)

  • 为 excel/access 安装 64 位驱动程序,并使用带有 openrowset 的 sql 存储过程来获取我的数据而不是 SSIS。我不确定这一点,我需要数据库服务器和网络服务器上的驱动程序吗?另外,我需要让数据库管理员打开他们可能不同意的临时查询。这是我在本地工作的驱动程序,但随后它已经以原始方式在本地工作了.. http://blog.codefluententities.com/2011/01/20/microsoft-access-database-engine-2010-redistributable/

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

最佳答案

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

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

关于asp.net - 从asp.net执行SSIS错误64位excel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13448786/

相关文章:

excel - VBA删除Excel中未使用的命名范围

sql-server - 计算存储过程结果中的行数,然后将结果插入表中

c# - 如何在 C# 字符串中显示 HTML 内容?

excel - 如何加载组合框,然后如何在vba中使用从中选择的值?

c# - asp.net 单个对象的 CompositeDataBoundControl

java - 有没有办法将excel数据传递到 cucumber 场景

c# - 如何使用 C# 仅从文件名中提取日期

sql-server - 将 DT_DBTIMESTAMP2 类型的列映射到 SQL Server 中的 datetime2 时,发生转换规范错误的无效字符值

html - CSS3 转换图像和文本

asp.net - 密码学不安全算法