代码之家  ›  专栏  ›  技术社区  ›  Sarah Vessels

“无法打开源的日志”-Windows 7-.NET web服务-事件日志

  •  1
  • Sarah Vessels  · 技术社区  · 14 年前

    我有一个.NET web服务正在尝试登录到Windows事件日志。但是,当我尝试向此web服务中的web方法发送SOAP请求时,在SOAP响应中会返回此错误:

    System.InvalidOperationException:无法打开源“MySource”的日志。您可能没有写入权限。--->System.ComponentModel.Win32Exception:访问被拒绝

    我试着在网上搜寻解决办法。 This one 描述在Windows 7 64位中编辑我不存在的注册表项; this Microsoft page . This question 是相关的,但唯一的答案是“Source”键,它似乎不在HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\eventlog\MySource中的任何位置。如果我需要添加一个源密钥,它的值应该是什么?我在web服务的web.config中使用模拟( <identity impersonate="true" /> ). This question 也有关联但没有答案。 This question 是相关的,但它的答案似乎与Windows7中的注册表设置无关。

    我两样都有 <authentication mode="Windows" /> <identity impersonate=“true”/> 在我的Web.config中设置。但是,即使我移除 <authentication mode=“Windows”/> ,我仍然收到“无法打开源日志”错误。

    2 回复  |  直到 8 年前
        1
  •  1
  •   Nathan Tuggy TonyLuigiC    8 年前

    我在Windows 7 64位中遇到了与我的经典ASP web应用程序完全相同的问题。我最终发现,通过将该网站的应用程序池更改为“启用32位应用程序”(右键单击应用程序池,高级设置),问题消失了。

        2
  •  0
  •   Kieren Johnstone    14 年前

    请看这里:

    http://msdn.microsoft.com/en-us/library/x7y6sy21.aspx

    注意

    若要在Windows Vista、Windows XP Professional或Windows Server 2003中创建事件源,您必须具有管理权限。

    此要求的原因是,必须搜索包括安全性在内的所有事件日志,以确定事件源是否唯一。在Windows Vista中,用户没有访问安全日志的权限;因此会引发SecurityException。 在Windows Vista中,用户帐户控制(UAC)确定用户的权限。如果您是内置Administrators组的成员,将为您分配两个运行时访问令牌:标准用户访问令牌和管理员访问令牌。默认情况下,您是标准用户角色。要执行访问安全日志的代码,必须首先将您的权限从标准用户提升到管理员。您可以在启动应用程序时执行此操作,方法是右键单击应用程序图标并指示您要以管理员身份运行。


    解决方案: 您应该使用以管理员身份运行的安装程序或实用程序设置日志源。如果不确定,只需使用Web服务中使用的相同代码来记录“安装实用程序已完成”消息。

    (你应该 以管理员权限运行web服务)

    希望能有帮助!