Windows SERVICE 环境下 COM类工厂中CLSID为{...0046}的组件失败 80070005 拒绝访问的解决

使用下面这条语句的时候报80070005 拒绝访问。下面来介绍我解决这个问题所走过的坑

new Microsoft.Office.Interop.Excel.Application();

在百度搜索到了一些解决办法,原文链接

  1. 控制面板-》管理工具-》组件服务-》计算机-》我的电脑-》DCom配置-》找到Microsoft Word文档
  2. 右键属性,点击"安全"选项卡,依次把"启动和激活权限","访问权限"都选择自定义,然后依次点击它们的编辑,添加NETWORK SERVICE、IIS_IUSRS用户,并指定所有权限。
  3. 点击”标识“选项卡,选择”交互式用户”
  4. 配置文件中添加这句


这个时候本机测试没有问题了,但是部署到服务器之后,有windows用户登陆到服务器的时候cai 正常使用,断开了远程链接,或者没有用户登陆到windows的话,还是会报错


在Stock Overflow 找到了一些解决办法原文链接

  1. 在专用池上设置站点而不是共享池。
  2. 启用32位应用程序支持。
  3. 将应用程序池的标识设置为LocalSystem。

去IIS把将应用程序池的标识设置为LocalSystem之后再次运行程序出现了新的报错,

原因是出现以下错误: 8000401a 因为配置标识不正确,系统无法开始服务器进程。请检查用户名和密码。 (异常来自 HRESULT:0x8000401A)。

回到起点

回到了第一个解决办法的第三点,选择交互式用户改为下列用户选项然后输入正确的当前登录的管理员帐户和正确密码,再次运行程序,就大结局了~~!!!!(ps:第一次写博客排版真烂.........(逃

你可能感兴趣的:(Windows SERVICE 环境下 COM类工厂中CLSID为{...0046}的组件失败 80070005 拒绝访问的解决)