【问题标题】:LogParser Access Denied errorLogParser 访问被拒绝错误
【发布时间】:2012-08-29 02:21:46
【问题描述】:
我使用 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))。
这个错误是什么意思,我该如何解决?
【问题讨论】:
标签:
c#
asp.net
iis
logging
logparser
【解决方案1】:
您可能需要在服务器 DCOM 上授予运行它的用户运行它的权限。
DCOM 配置位于组件服务中,您可以看到每个条目的 GUID,因此您应该能够识别相关条目。
然后为其编辑安全权限,并赋予相关用户Launch and Activation权限和Access权限。
【解决方案2】:
此错误是由于缺少权限而出现的。
您需要在虚拟目录中授予 IIS 用户/访客读/写权限。
【解决方案3】:
IIS 7+ 可能未配置为运行 32 位应用程序。从您的应用程序池中,导航到高级设置,然后启用 32 位应用程序。
我遇到了您描述的相同问题,我采取的解决步骤包括:
- 在应用程序池下启用 32 位应用程序
- 从日志文件夹(inetpub/logs/LogFiles/{site},授予对应用程序池身份的访问权限
- 将 LogParser.dll 和 Interop.MSUtil.dll 复制到站点的 bin 文件夹中
【解决方案4】:
我用来解决问题的步骤如下:
- 转到 IIS 管理器
- 导航到相关网站
- 为您的默认网站启用 ASP.NET 身份验证
这应该可以解决权限问题。
【解决方案5】:
为站点创建专用应用程序池并将其标识切换为“网络服务”。为我解决了这个问题
【解决方案6】:
我必须尝试三件事:
1-查看LogParser.dll是否注册到regsvr32.exe;
2- 将应用程序池的权限更改为网络服务;
3- 在应用程序池上接受 32 位应用程序;