3

我使用 Logparser 解析 IIS 日志并在网页上显示信息。在我的开发环境中一切正常,但是一旦我将应用程序发布到服务器,我就会收到以下错误:

由于以下错误,检索具有 CLSID {8CFEBA94-3FC2-45CA-B9A5-9EDACF704F66} 的组件的 COM 类工厂失败:80070005 访问被拒绝。(来自 HRESULT 的异常:0x80070005 (E_ACCESSDENIED))。

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

异常详细信息:System.UnauthorizedAccessException:检索具有 CLSID {8CFEBA94-3FC2-45CA-B9A5-9EDACF704F66} 的组件的 COM 类工厂失败,原因是以下错误:80070005 访问被拒绝。(来自 HRESULT 的异常:0x80070005 (E_ACCESSDENIED))。

这个错误是什么意思,我该如何解决?

4

6 回答 6

0

IIS 7+ 可能未配置为运行 32 位应用程序。从您的应用程序池中,导航到高级设置,然后启用 32 位应用程序。

我遇到了您描述的相同问题,我为解决它所采取的步骤包括:

  • 在应用程序池下启用 32 位应用程序
  • 从日志文件夹 (inetpub/logs/LogFiles/{site},授予对应用程序池身份的访问权限
  • 将 LogParser.dll 和 Interop.MSUtil.dll 复制到站点的 bin 文件夹
于 2013-08-13T18:44:55.853 回答
0

我用来解决问题的步骤如下:

  1. 转到 IIS 管理器
  2. 导航到有问题的网站
  3. 为您的默认网站启用 ASP.NET 身份验证

这应该可以解决权限问题。

于 2014-08-12T22:21:12.067 回答
0

由于缺少权限,出现此错误。您需要为虚拟目录中的 IIS 用户/访客授予读/写权限。

于 2012-09-04T12:42:31.150 回答
0

您可能需要授予在服务器 DCOM 上运行它的用户运行它的权限。DCOM 配置位于组件服务中,您可以看到每个条目的 GUID,因此您应该能够识别相关条目。

然后为其编辑安全权限,并赋予相关用户启动和激活权限以及访问权限。

于 2012-09-04T12:31:48.993 回答
0

为站点创建专用应用程序池并将其标识切换为“网络服务”。为我解决了这个问题

于 2014-08-13T01:47:01.927 回答
0

我不得不尝试三件事:

1-查看LogParser.dll是否注册到regsvr32.exe;
2-将应用程序池的权限更改为网络服务;
3- 在应用程序池上接受 32 位应用程序;

于 2016-01-30T18:23:39.987 回答