使用WScript.Shell.Logevent时出现“Permission Denied”错误

时间:2013-02-22 17:51:22

标签: iis asp-classic event-log

我的环境是经典ASP。我想将事件记录到事件日志中(事实并非如此)。我已经建立了一个快速测试(下面的代码)并继续获得" Permission Denied"。

const SUCCESS = 0
const ERROR = 1
const WARNING = 2
const INFORMATION = 4
const AUDIT_SUCCESS = 8
const AUDIT_FAILURE = 16

dim WshShell
set WshShell = Server.CreateObject("WScript.Shell")
wshshell.Logevent WARNING, "Test Event Log by Windows Script Host!"
set wshshell=nothing
Response.write "Event Logged Successfully by Windows Script Host!"

我在网上搜索了这个问题的解决方案并找到了某种答案。不幸的是,他们的解决方案并不奏效。他们说:

  

将以下注册表项设置为0而不是1,然后重新启动   您的计算机以使更改生效。   HKLM \ System \ CurrentControlSet \ Services \ EventLog \ Application Name:   RestrictGuestAccess类型:REG_DWORD注意:这将启用所有Guest   要写入应用程序事件日志的帐户。

有更好的方法吗?还是一个真正的解决方案呢?

基本上,我试图将关键错误记录到某些Windows事件日志中,这将允许监控系统使用它们。

我的操作系统是使用IIS 6.0的Windows Server 2003。

实际代码将在带有IIS 7.5的Windows Server 2008 R2上运行。

操作系统甚至IIS Web服务器是否重要?

1 个答案:

答案 0 :(得分:1)

不要使用经典ASP和COM对象来做这件事。而是构建SQL存储过程(2005或更高版本)并使用xp_logevent登录到事件日志。

您可以在http://msdn.microsoft.com/en-us/library/ms186244.aspx

了解如何执行此操作

一旦我实施了这种方法,一切正常,我在编码20分钟后离开了。