2012年10月3日 星期三

Web AP在IIS的相關權限設定


Web 程式在本機上執行,通常寫事件檢視器和檔案的權限是預設為最高權限。
所以執行起來不會有什麼問題,但是一旦真正上到IIS後,才會開始發現一些問題,而大部分都是因為權限沒有設定好的關係。

可以先參考保哥這篇文章,超級推薦:

此篇文章針對以下兩個項目的寫入權限做說明。
1.      寫事件檢視器
2.      使用Log4Net寫檔



OS Windows 2008 R2
IIS
版本: 7.5


寫事件檢視器
如果看了保哥的文章,就知道IIS7.5集區會預設以 ApplicationPoolIdentity」這個帳戶來執行。


所以我們只要把它加到有寫入/瀏覽
事件檢視器權限的群組: Event Log Readers

但是我們指定的帳戶名稱必須是: IIS AppPool\應用程式集區名稱
這樣才能對應到要設定權限的集區。

 




Web AP的集區名稱為ASP.NET v4.0,所以我就輸入使用者名稱:IIS AppPool\ASP.NET v4.0

檢查名稱後,系統就自動辨識了。 這支在IIS上的Web AP就有權限可以寫事件檢視器了。







使用Log4Net寫檔

一般我們都是把log4net.xml , log4net.dll 和我們要寫入的檔案放在一起就可以寫檔了。
但是因為Web AP路徑的緣故,常常是程式讀取不到log4net.xml
所以放在 AssemblyInfo.cs log4net設定字串,還是乖乖打上所在的資料夾名稱:./App_Data/log4net.xml

//log4net
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "./App_Data/log4net.xml", ConfigFileExtension = "xml", Watch = true)]


然後log4net.xml裡面設定的file value也是乖乖打上資料夾名稱:./App_Data/Error.log

<file value="./App_Data/Error.log" />


最後別忘了先新增Error.log,並把Error.log的讀寫權限打開。(因為是記錄檔&內部用,我就直接開Everyone了)

沒有留言:

張貼留言