LogParser访问被拒绝错误

时间:2012-09-04 12:12:02

标签: c# asp.net iis logging logparser

我使用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))。

这个错误意味着什么,我该如何解决?

6 个答案:

答案 0 :(得分:0)

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

然后编辑它的安全权限,并为相关用户提供启动和激活权限以及访问权限。

答案 1 :(得分:0)

由于缺少权限,此错误即将发生。 您需要为虚拟目录中的IIS Users / Guest授予读/写权限。

答案 2 :(得分:0)

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

我遇到了您描述的相同问题,我采取的解决方法包括:

  • 在应用程序池下启用32位应用程序
  • 从日志文件夹(inetpub / logs / LogFiles / {site},授予对应用程序池标识的访问权限
  • 将LogParser.dll和Interop.MSUtil.dll复制到站点的bin文件夹

答案 3 :(得分:0)

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

  1. 转到IIS管理器
  2. 导航至相关网站
  3. 为您的默认网站启用ASP.NET身份验证
  4. 这应该清除许可问题。

答案 4 :(得分:0)

为网站创建专用应用程序池,并将其标识切换为"网络服务"。解决了我的问题

答案 5 :(得分:0)

我必须尝试三件事:

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