1

我的环境是经典 ASP。我想将一个事件记录到事件日志中(哪个并不重要)。我已经建立了一个快速测试(下面的代码)并不断收到“权限被拒绝”。

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 名称:RestrictGuestAccess 类型:REG_DWORD 注意:这使所有来宾帐户都可以写入应用程序事件日志。

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

本质上,我正在尝试将严重错误记录到某些 Windows 事件日志中,这将允许监控系统使用它们。

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

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

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

4

1 回答 1

1

不要费心使用经典的 ASP 和 COM 对象来做这件事。相反,构建一个 SQL 存储过程(2005 或更高版本)并使用 xp_logevent 记录到事件日志。

您可以在http://msdn.microsoft.com/en-us/library/ms186244.aspx查看如何执行此操作

一旦我实施了这种方法,一切都奏效了,我在 20 分钟的编码后离开了。

于 2013-03-21T15:44:07.723 回答