[英]While Saving the excel using workbook.saveAs getting the Exception from HRESULT: 0x800A03EC?
[英]Excel workbook.saveas inside IIS
在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上
首先要注意的是,由于许可和稳定性/可靠性问题,Microsoft 不支持 Office interop 服务器端 :
Microsoft当前不建议也不支持任何无人参与的非交互客户端应用程序或组件(包括ASP,ASP.NET,DCOM和NT Services)中的Microsoft Office应用程序自动化,因为Office可能表现出不稳定的行为和/在此环境中运行Office时出现死锁或死锁。
尽管如此,仍有许多人这样做/尝试这样做,并遇到了与您类似的问题。 通常,这似乎是由权限问题(安全上下文和DCOM安全配置)引起的。 已针对其描述了不同的潜在解决方案,例如
如何使IIS7与Office Interop配合使用具有两种不同的解决方案,其中一种在其他地方多次提到:
- 打开Windows资源管理器
- 根据您安装的是32位还是64位版本的Office,您需要执行以下一项(或两项):
- 32位Office安装:导航到C:\\ Windows \\ System32 \\ config \\ systemprofile
- 64位Office安装:
- 导航到C:\\ Windows \\ SysWOW64 \\ config \\ systemprofile
- 验证文件夹“桌面”是否存在(如果不存在,请创建它)
- 右键单击>属性
- 在安全选项卡上:添加具有默认权限(读取和执行;列出文件夹内容;读取)的运行网站的帐户(例如:网络服务)
RPC失败,打开了一个Excel文档。 列出以下解决方案:在“运行”中键入Dcomcnfg.exe,这将打开dcomconfig实用程序。
在dcomconfig实用程序中,
转到组件服务->计算机->我的电脑-> DCom配置-> Microsoft Excel应用程序(和Powerpoint)
右键单击它,然后转到属性。 转到安全选项卡。 在安全之下
1)启动和激活权限->选择自定义,然后单击编辑。 添加用户网络服务,并检查“允许”下的所有内容。
2)对“访问权限”和“配置权限”执行相同的操作。
然后单击“应用”并关闭所有内容。
事实证明,COM对象需要某种许可。 将Win2003服务器上的AppPool(用于站点)设置为“ SYSTEM”可以解决此问题。 对于某些用途(默认情况下),ASPNET帐户有权访问任何COM对象尝试访问的内容。
这些解决方案之一可能会为您服务。
它有时对您有用而不是在其他时间不起作用的原因可能与特定excel文件的内容有关,例如,它是否包含任何VBA脚本或引用任何(特定)模块。 所以这是您应该研究的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.