gpt4 book ai didi

.net - Windows 7 .net Excel .SaveAs() 来自 HRESULT : 0x800A03EC 的错误异常

转载 作者:行者123 更新时间:2023-12-01 18:01:51 27 4
gpt4 key购买 nike

背景:
我在工作中为我的旧硬盘干杯,现在正在买一个新硬盘。这样我就必须重建我的机器。我的经理在他借用的笔记本电脑上安装了 Windows 7,在我的机器无法使用时我一直在使用这台笔记本电脑。但我遇到了一个问题。

我们有相当多的应用程序使用 Microsoft.Office.Interop.Excel 引用。到目前为止,我已经克服了一些错误,但最近几天我一直遇到的错误(我的机器实际上在第一次重建后遇到了硬盘驱动器故障)并且无法找到修复方法。我已经搜索了此错误,但找不到任何人在 Windows 7 上遇到此问题,尽管我尝试了 Windows Server 2008 的其他修复程序但无济于事。

如果我不能解决这个问题,我将无法使用 Windows 7,并且想知道在我重建机器之前只需删除它并重新启动(第三次)。

问题:
操作系统:Windows 7 企业版
错误消息:HRESULT 异常:0x800A03EC
代码:

Private m_xls As Microsoft.Office.Interop.Excel.Application
Private m_wkbk As Microsoft.Office.Interop.Excel.Workbook
Private m_wksht As Microsoft.Office.Interop.Excel.Worksheet
m_xls = New Application
m_xls.Visible = False : m_xls.DisplayAlerts = False
m_wkbk = m_xls.Workbooks.Open(Me.FilePath)
m_wksht = CType(m_wkbk.ActiveSheet, Worksheet)
'...Write some data...'
m_wkbk.SaveAs(Me.FilePath, XlFileFormat.xlWorkbookNormal, Missing.Value, Missing.Value, False, False, XlSaveAsAccessMode.xlNoChange, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value)

错误发生在最后一行。

到目前为止我尝试过的:

  1. 更改 AppPool 以使用NetworkService 帐户(原为我的“ApplicationPoolIdentity”在用户列表中找不到安全设定)。然后给出NetworkService 帐户完全访问权限到适当的文件夹。
  2. 授予 NetworkService 访问 DCOMCNFG 中所有“Microsoft Excel 应用程序”设置的权限
  3. 运行此命令“appcmd set config -section:asp -enableParentPaths:true”,因为这是我能找到的唯一其他内容
  4. 使用 .SaveCopyAs() 有效,但导致了不同的错误

我只是想看看是否有其他人遇到过这个问题,因为 Windows 7 是新的。我可以选择 Server 2008,但在我告诉我的经理这不起作用之前,我希望能有一些可靠的理由。

谢谢你,杰夫

最佳答案

注意:这需要稍微精简一下,因为它是我在内部 wiki 上所做的所有修复的汇编,但我不确定哪些更改子集使它起作用,所以我将全部包含在内。

解决方案:

以下更改可能是解决此问题的超集。

-运行 DCOMCNFG.exe 并导航至“组件服务>计算机>我的电脑”。
-右键单击“我的电脑”,然后单击“属性”。
- 打开“COM 安全”选项卡。为列出的每个按钮添加您的帐户(“访问权限”和“启动和激活权限”下的“编辑限制...”和“编辑默认...”按钮)。为您的帐户提供所有访问选项。单击“应用”,然后单击“确定”。
-仍在 DCOMCNFG 中时,展开“我的电脑”链接并打开“DCOM Config”文件夹。
- 右键单击​​“Microsoft Excel 应用程序”并选择“属性”。
- 在“安全”选项卡下,选择“启动和激活权限”和“配置权限”的“自定义”选项。对于两者,请单击“编辑...”按钮。授予您的帐户访问所有内容的权限。
- 仍在“Microsoft Excel 应用程序”的“属性”中,转到“身份”选项卡。
-选择“交互式用户”选项。
- 单击“应用”,然后单击“确定”。
-重新启动计算机。

-尝试以下DCOMCNFG 和 ApplicationPoolIdentity 更改。

-以管理员身份运行命令提示符。
-导航到 c:\Windows\System32\inetsrv> 并运行 'appcmd set config -section:asp -enableParentPaths:true'

或者,您可以使用 .SaveCopyAs(),尽管这可能仍然无法解决问题并且需要更改代码。

DCOMCNFG 对于 Windows 7:

此错误发生在“Excel app = New Application();”上来电

此链接详细介绍了如何修复 XP/Server 2003 的问题,但也可以适用于 Windows 7:http://blog.crowe.co.nz/archive/2006/03/02/589.aspx

我没有/无法找到“ASPNET”帐户。您必须检查应用程序池以找出应用程序正在运行的内容。
为此,请进入“计算机管理>服务和应用程序>Internet信息服务>应用程序池”
右键单击相应的应用程序池并选择“高级设置”。在“流程模型>身份”下,您可以找到它正在运行的帐户。我的是“ApplicationPoolIdentity”,但我也找不到,所以我将其更改为“网络服务”,如 Windows Server 2003。
设置完成后,运行 DCOMCNFG.exe。导航至“组件服务>计算机>我的电脑>DCOM 配置”。
找到并右键单击“Microsoft Excel 应用程序”,然后选择“属性”。选择“安全”选项卡。在“启动和激活权限”下选择“自定义”,然后单击“编辑”。
然后点击“添加...”按钮。
输入适当帐户的名称,在本例中为“网络服务”,然后单击“检查名称”。然后点击“确定”。
返回“启动和激活权限”页面,突出显示“网络服务”帐户,然后选中“本地启动”和“本地激活”复选框。然后单击“确定”。

关于.net - Windows 7 .net Excel .SaveAs() 来自 HRESULT : 0x800A03EC 的错误异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1981395/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com