將 Windows 2000 的 ASP 程式移至 Windows 2003 IIS6 時,發現以下的問題
Microsoft VBScript runtime error '800a0046'
Permission denied
ASP 的程式碼大致如下:
[copy code]
Set LogService = CreateObject("WScript.Shell")
LogService.LogEvent 4, "取得一筆交易為:" & strMSG & ",長度為:" & strLen
1: Set LogService = CreateObject("WScript.Shell") 2: LogService.LogEvent 4, "取得一筆交易為:" & strMSG & ",長度為:" & strLen
後來發現此為 Windows 2003 安全性加強,避免 WEB 應用程式,可以直接存取 EventLog。
與同事討論了一下,後來決定不再寫入 EventLog ,不過,仍是找到了一些資源可以參考。
ASP.NET: Event Log in IIS6/Server 2003
http://blogs.interakting.co.uk/brad/archive/2008/03/06/ASP.NET-Event-Log-in-IIS6Server-2003.aspx
此網站寫得很詳細,在 IIS6 上,安全性要動許多手腳才有辦法,我看了頭都昏了。
如果要改寫的話,我應該會用 log4net 來打死這些沒有產值的事。
另外也找到 IIS6 預設的權限列表 KB ,如果有 File Access Denied 的狀況,也可以看看這篇
Microsoft KB812614 http://support.microsoft.com/kb/812614/en-us
(小熊子暫時將洞用土填起來,蓋起來,以後要改寫再說吧~)
Tags: asp, iis, windows2003, logevent