System.UnauthorizedAccessException:检索Word Interop的COM类工厂失败,错误80070005

Tom*_*s I 32 .net c# windows-7

我在Visual Studio 2008中遇到C#ASP .NET项目的问题当我使用Windows 7 Ultimate(x64)重新安装我的计算机时,问题就出现了.对此我也使用Office 2007.

我得到的错误信息是:

System.UnauthorizedAccessException:检索具有CLSID {000209FF-0000-0000-C000-000000000046}的组件的COM类工厂因以下错误而失败:80070005.at xxx.Utility.WordDocument..ctor(String filePath,HttpServerUtility util)at customer_communication.BuCreate_click(Object sender,EventArgs e)位于c:\ xxx\Website\customer\communication.aspx.cs:第127行

Tom*_*s I 33

这是我对此问题的修复:

我正在使用Win 7 64位和Office 2007

运行程序" dcomcnfg -32 ".(如果在64位下运行,你就找不到单词和excel组件)

转到"控制台根/组件服务/计算机/我的电脑/ DCOM配置/",查找Microsoft Word和Excel,然后选择属性.

转至安全性,并选择下的"自定义""配置权限.(如果需要的话,你可能要改变对方的权限为好,但我并不需要)加入'IIS_IUSRS’,并给它'完全控制’.

现在转到"身份"并选择"交互式用户".

完成后别忘了按"OK".:d

我希望这可以帮助你解决问题以及其他来到这里并阅读本文的人.

  • 我正在使用Win7 64位与Office 2010(32位),在"组件服务"中我没有看到任何关于MS Word的信息.我能做什么? (8认同)

Ser*_* S. 8

您应该为ASP.NET进程标识(IIS 5上的{MACHINE}\ASPNET或IIS 6上的网络服务)授予对Word COM组件的访问权限:

"控制面板 - 管理工具 - 组件服务 - 计算机 - 我的电脑 - DCOM配置"

找出"Microsoft Word文档",右键单击 - 设置 - 安全选项卡,为ASP.NET进程标识授予访问权限(本地和远程)(IIS 5为"ASPNET",IIS 6为"网络服务").


如果那样你得到一个"System.Runtime.InteropServices.COMException(0x800A13E9):内存不足.立即保存文件." 打开/添加文档时出现异常(我自己的expirience),只需删除%Temp%和\ Content.Word文件夹中的临时文件.

  • 我有同样的问题,但在DCOM配置中找不到"Microsoft Word文档". (10认同)
  • 我无法在DCOM配置中找到CLSID或Microsoft Word文档 (3认同)

sli*_*les 5

这个对我来说很难搞清楚,也许我的Windows mojo技能只是低于标准杆.但我无法在Windows Server 2008上以32位模式运行组件服务.希望这可以帮助其他人遇到同样的问题:

  1. 通过前面提到的任一方法运行组件服务(运行框或管理工具); 关闭这个程序
  2. 将"C:\ Windows\System32\mmc.exe"/ 32粘贴到"运行"框中并按Enter键(在任务管理器中验证您看到mmc.exe*32)
  3. 转到文件,您应该在列表中看到comexp.msc(因为步骤1),选择它,它将在32位模式MMC控制台中打开组件服务.

编辑:为了完整起见,为了让Word Interop在Windows Server 2008上运行,我还必须按照本答案中的说明创建Desktop文件夹.


Mic*_*nis 5

启动dcomcnfg -32dcomcnfg /32两者都无法在列表中显示目标应用程序(Microsoft Excel).

但是我按照指示@ 如何使IIS7与Office Interop很好玩,特别是关于启动mmc -32和手动添加组件服务管理单元的说明,我能够让它出现.(注意:虽然链接谈到IIS7,但我的问题是Windows服务).

  1. 单击开始>运行> dcomcnfg(或"mmc -32",然后手动添加"组件服务"管理单元,如果在步骤3中找不到该应用程序)
  2. 导航到组件服务>计算机>我的电脑> DCOM配置
  3. 找到麻烦的MS应用程序(例如:Excel的"Microsoft Excel应用程序"或Word的"Microsoft Word 97 - 2003文档")
  4. 右键单击>属性
  5. 在安全选项卡上:选择启动和激活权限下的自定义,然后单击编辑...
  6. 添加运行站点的帐户(例如:网络服务)并分配本地启动和本地激活权限
  7. 瞧!


gyo*_*fov 5

这对我有用:

  1. 在命令行中输入DCOMCNFG
  2. 组件服务 - >计算机 - >我的电脑 - > DCOM配置
  3. 找到"Microsoft Word 97 - 2003文档"(如果缺少检查您的Word是否也是64位)
  4. 右键单击 - >属性
  5. 转到选项卡安全性并编辑"自定义"单选按钮,以便IIS_IUSRS可以拥有启动和访问权限
  6. 转到Tab Identity并选择"交互式用户"
  7. 应用更改并重试
  8. 如果所有这些都失败了,请同时转到"常规"选项卡,然后在"身份验证级别"下拉菜单中选择"无".