這可能不是SiteCore本身的問題,但我已將其包括在內以確保完整性。我使用應用程序池的自定義標識在IIS7下運行sitecore 6.3。我不能讓Sitecore將其日誌信息(使用默認的log4net設置)寫入eventlog。我按照這裏的建議:http://logging.apache.org/log4net/release/faq.html#Why%20doesn%27t%20the%20EventLogAppender%20work?,雖然它使得我的自定義身份成爲管理員組的一員,但我需要找到一種方法來讓它在沒有這種安全攻擊的情況下在生產環境中工作。使用非管理員帳戶的log4Net事件日誌權限問題
奇怪的是,我有一個MSI安裝它(在一個帳戶下運行,是一個管理員組的成員),並在我的事件日誌中創建正確的註冊表項,但儘管如此,我仍然得到當我使用自定義標識運行應用程序時(沒有成爲管理員的成員),出現以下錯誤。
log4net:ERROR DOMConfigurator: Could not create Appender [EventLogAppender] of type [log4net.Appender.EventLogAppender]. Reported error follows.
System.Security.SecurityException: Requested registry access is not allowed.
at Microsoft.Win32.RegistryKey.OpenSubKey(String name, Boolean writable)
at System.Diagnostics.EventLog.GetEventLogRegKey(String machine, Boolean writable)
at System.Diagnostics.EventLog.FindSourceRegistration(String source, String machineName, Boolean readOnly)
at System.Diagnostics.EventLog.DeleteEventSource(String source, String machineName)
at log4net.Appender.EventLogAppender.ActivateOptions()
at log4net.Repository.Hierarchy.DOMHierarchyConfigurator.ParseAppender(XmlElement appenderElement)
The Zone of the assembly that failed was:
MyComputer
log4net:ERROR DOMConfigurator: Appender named [EventLogAppender] not found.
想我可以縮小它我授予每個人完全權限到以下注冊表項和子項註冊表權限問題,但它沒有工作,要麼:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog
定製的身份是以下中的一員組:
- 事件日誌讀取
- IIS_USERS
- 性能監視器用戶
我也看到了following question這似乎要求同樣的事情。微軟的文章似乎表明它可能是一個事件日誌中的ACL問題,並提供了有關如何更改SSDL的示例,但我寧願儘可能避免這種情況。
編輯: 我有另一臺服務器運行的日誌正在填充罰款。自定義身份是管理員的成員,所以我撤銷了這一點,並重新啓動,試圖故意破壞它,但我不能。 Config在兩個盒子上都是相同的,並且用於運行創建註冊表項的MSI的相同身份。在兩者上運行procmon(在執行IISReset並再次啓動應用程序池之後)檢查註冊表活動。奇怪的是 - 在工作箱上,你得到了477個名字,在錯誤的地方找不到我的事件源的記錄(應用程序和一個不同的自定義事件日誌「MyCompany」)。 「MyCompany \ MyCompany.SiteCore」沒有記錄它正在登錄的地方。雖然在破損的盒子上,它確實似乎在請求讀取正確的密鑰(雖然只有6次),但是您隨後得到Log4Net註冊表訪問錯誤。
也許有一些額外的見解:對於某些無法解釋的原因,我的安裝程序隨機創建的註冊表子項(用於eventlog源名稱)已在1臺服務器上消失。它仍然在註冊表中(我已打開,雖然沒有刷新),當我點擊它時彈出一條消息:「Error Opening Key」:[Keyname]不能被打開。錯誤是阻止該鍵被打開。詳細信息:系統找不到指定的文件。 Log4Net消息更改爲:log4net:錯誤DOMConfigurator:找不到名爲[EventLogAppender]的附加程序。 – chrislewisdev