簡體   English   中英

ASP.NET / IIS7.5編寫日志文件不起作用(權限,UAC,配置,???)

[英]ASP.NET/IIS7.5 Writing Log File Not Working (Permissions, UAC, Config., ???)

我們無法將ASP.NET應用程序遷移到Windows Server 2008 R2 x64和IIS7.5。 問題是我們的ASP.NET應用程序寫入日志文件,並且沒有寫入這些日志文件。 應用程序編寫日志文件的唯一方法是,如果我以本地管理員用戶身份登錄服務器,或者如果我右鍵單擊並以管理員身份運行IE,那么這兩種方式對我們來說都不是可接受的解決方案。

我們的平台是:Windows Server 2008 R2 x64(UAC設置是默認設置)IIS7.5 ASP.NET 4.0(使用Windows身份驗證和模擬,都在web.config中)

我們的應用安裝到:D:[appname] [appnameWebSite](所有.aspx,.dll等文件都在這里)\\ Log(應用程序嘗試將日志文件寫入此文件夾)

在服務器上:創建新的應用程序池(名稱:[appname],.NET 4.0,托管管道模式:經典,標識:ApplicationPoolIdentity,加載用戶配置文件:False,所有其他屬性是默認值)創建指向D的IIS應用程序: appname] [appnameWebSite]並將其添加到新的App Pool(完全信任級別)在本地Administrators組中擁有域用戶

使用上面列出的所有配置和默認設置,ASP.NET應用程序將不會寫入日志文件。 該應用似乎在瀏覽器中正常工作,但沒有log.txt文件。

為了嘗試“修復”這個問題,我們嘗試了很多東西:Tried Application Pool設置:Managed Pipeline Mode:Integrated Tried Application Pool設置:Identity:NetworkService Tried Application Pool設置:Identity:LocalSystem Tried Application Pool設置:加載用戶配置文件:True Gave Users組對文件系統的完全控制為我們的應用程序文件夾結構(嘗試了appname文件夾,僅嘗試了Log文件夾,僅嘗試了appnameWebSite和Log文件夾)給IIS AppPool [appname](匹配新的App Pool)用戶完全控制到文件我們的應用程序文件夾結構的系統(嘗試了appname文件夾,只嘗試了Log文件夾,只嘗試了appnameWebSite和Log文件夾)

這些都沒有幫助。 同樣,應用程序運行正常,只是沒有創建日志文件。

如上所述,在應用程序運行時創建日志文件的唯一方法是,如果我們使用本地管理員帳戶登錄服務器(這是合理的,因為他是超級用戶),或者我們以管理員身份運行IE並提升權限。

有什么建議? 救命? 有問題嗎?

謝謝!

我嘗試授予每個權限,但仍然沒有獲取任何日志文件。 最后我遇到了這個建議更改我的日志文件目錄的所有權。 我檢查了,目錄所有權設置為SYSTEM。 我將其更改為管理員並遞歸應用更改。 我彈出IIS,在瀏覽器中從網站點擊一個網頁,現在我有了日志文件。 萬歲!

注意:讓我失望的是檢查系統事件日志。 我收到15006錯誤說“日志文件的所有者或目錄C:\\ inetpub \\ logfiles \\ W3SVC1 \\ some.log無效。這可能是因為另一個用戶已經創建了日志文件或目錄。”

好吧,經過幾天嘗試每個IIS選項,用戶和組帳戶,文件系統權限,進程資源管理器等,我認為我們得到了它的工作:

  • 我們將所有IIS應用程序池和網站設置重置為其默認值
  • 我們還將Log文件夾中的文件夾/文件系統權限重置為默認設置
  • 然后我們關閉了服務器上的Internet Explorer增強安全配置

而且成功! 無論用戶使用ASP.NET應用程序,無論是在服務器本身還是從工作站上運行,都會按預期編寫日志文件。

我不知道在服務器上關閉Internet Explorer增強安全配置是否是“正確”的事情,或者是否違反了任何最佳做法,但它似乎對我們有用。

有沒有人有什么要補充的?

我掙扎了一段時間。 ApplicationPoolIdentity是Users組的成員,Users組具有有限的訪問權限。

在資源管理器中,右鍵單擊要編寫的文件夾,然后轉到安全性。 單擊“高級”按鈕。 您將看到用戶具有“讀取”和“執行”權限,“用戶”組可能具有或不具有“特殊”權限。 如果沒有,請單擊“更改權限”,並為用戶提供“ 創建文件/寫入數據”和“ 創建文件夾/附加數據”的功能 這僅限於此文件夾。 我通常使用子文件夾,以便我不提供對整個網站的寫訪問權限。

嘗試再次創建日志文件。 這是我需要設置的唯一權限才能使其正常工作。

對我來說,訣竅是為SYSTEMAdministrators提供寫訪問權限,不僅可以訪問日志文件夾本身, 還可以訪問路徑中的每個文件夾 這不是權限通常在Windows中的工作方式,但IIS似乎非常特別。 並不是說有充分的理由從ACL開始刪除這兩個。

如果您懷疑這是問題,請檢查Windows日志/系統下的事件日志。 此問題表現為來自源HttpEvent的錯誤條目,並顯示“無法創建日志文件C:\\ path \\ to \\ logs \\ W3SVC1 \\ u_extend1.log。確保日志記錄目錄正確且此計算機具有寫入權限那個目錄。“

PS這適用於IIS 10,但也可能適用於其他版本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM