症状
使用 ASP.NET 在事件日志中创建一个新的事件源时,您可能会收到下面的错误信息:
System.Security.SecurityException:Requested registry access is not allowed.
原因
默认情况下,ASP.NET 工作进程的用户令牌是 ASPNET(或者,对于 Internet 信息服务 [IIS] 6.0 上运行的应用程序是 NetworkService)。由于您的帐户不具有创建事件源的正确用户权限,会出现“症状”部分中的问题。
临时救急的办法:
我们有一个神奇的解决办法,是houxy找到的“IIS虚拟目录的匿名访问选择框点掉再选中”大法:
首先,不让该站点虚拟目录启用匿名访问,这样在本机管理员身份下访问你的web应用,因为你当前的身份应该拥有对注册表的权限,所以肯定能做Enterprise Library要做的事情。然后,再让虚拟目录启用匿名访问,再次访问Web应用,一切恢复正常,不再报告“System.Security.SecurityException: 不允许所请求的注册表访问权。”了。
也可以把"IIS虚拟目录匿名访问"中的匿名帐户修改成具有这种权限的帐户,如管理员即把IUSR_PYT改成Administrator