【问题标题】:Excel workbook.saveas inside IISIIS 中的 Excel 工作簿.saveas
【发布时间】:2015-04-20 19:03:39
【问题描述】:

我在 IIS 中发布 Web 应用程序时遇到问题

有时 WorkBook.SaveAs 方法可以正常工作,但有时不行。

说明:在执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

异常详细信息:System.Runtime.InteropServices.COMException:远程过程调用失败。 (HRESULT 异常:0x800706BE)

来源错误:

    workbook.Saved = True
    workbook.SaveAs(Server.MapPath("~/MyFolder/Excel.xlsx"))
    workbook.Close()
    APP.Quit()

有时错误出现在 APP.Quit 上

【问题讨论】:

    标签: asp.net vb.net excel iis-8.5 vba


    【解决方案1】:

    首先要注意的是,由于许可和稳定性/可靠性问题,Office 互操作是 Microsoft not supported server side

    微软目前不推荐也不支持, 无人值守的 Microsoft Office 应用程序自动化, 非交互式客户端应用程序或组件(包括 ASP、 ASP.NET、DCOM 和 NT 服务),因为 Office 可能表现出不稳定 Office 在此环境中运行时出现的行为和/或死锁。

    不过,很多人这样做/尝试这样做,并遇到与您类似的问题。通常这似乎是由权限问题(安全上下文和 DCOM 安全配置)引起的。已经描述了不同的潜在解决方案,例如

    • How to make IIS7 play nice with Office Interop 有两种不同的解决方案,其中一种在其他地方多次提及:

      1. 打开 Windows 资源管理器
      2. 取决于您安装的是 32 位还是 64位版本的office你需要做一个(或两个) 下列的:
        • 32 位 Office 安装:导航到 C:\Windows\System32\config\systemprofile
        • 64位Office安装:
      3. 导航到 C:\Windows\SysWOW64\config\systemprofile
      4. 验证文件夹 “桌面”存在(如果不存在则创建它)
      5. 右键>属性
      6. 在安全选项卡上:添加站点所在的帐户 正在以默认权限运行(例如:网络服务)(读取和 执行;列出文件夹内容;阅读)
    • RPC failure opening an excel document. 列出以下解决方案: 在 Run 中键入 Dcomcnfg.exe,打开 dcomconfig 实用程序。

      在 dcomconfig 实用程序中,

      转到组件服务 --> 计算机 --> 我的电脑 --> DCom 配置 --> Microsoft Excel 应用程序(和 Powerpoint)

      右键单击它并转到属性。转到安全选项卡。在下面 安全

      1) 启动和激活权限 --> 选择自定义并点击 编辑。添加用户网络服务并检查允许下的所有内容 它。

      2) 对访问权限和配置权限执行相同操作。

      然后单击应用并关闭所有内容。

    • Another one using Windows Server 2003,使用不同的解决方案

      事实证明,COM 获得了某种许可 需要的对象。在 Win2003 上设置 AppPool(用于站点) 服务器到“SYSTEM”解决了这个问题。出于某种原因(默认情况下) ASPNET 帐户有权访问任何 COM 对象 正在尝试访问。

    也许其中一种解决方案对您有用。

    它有时适用于您而不适用于其他时候的原因可能与特定 excel 文件的内容有关,例如它是否包含任何 VBA 脚本或引用任何(特定)模块。所以这是你应该研究的。

    【讨论】:

    • 我做了这两个解决方案,这就是我问这个问题的原因
    • 好吧,你没有说你尝试过任何东西,所以我怎么知道。您应该在问题中包含您尝试过但未解决问题的内容。
    • 很抱歉,我认为有时它可以工作,因为我做了那些解决方案,但为什么有时会出现错误。
    猜你喜欢
    • 1970-01-01
    • 2019-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多