簡體   English   中英

在托管應用程序中寫入日志

[英]To write logs in hosted application

我們創建了一個C#MVC應用程序。 我們已經成功托管了該網站,並且能夠正常運行。 問題是,當我們使用log4net將日志文件創建到存在於“ ..inetpub / mysite / errorLogs”的errorLogs文件夾中時。 但是它不允許在其中寫入文件。

我也嘗試過使用System.IO.File.AppendAllText(sFilePath, "test content.");在文件中進行簡單編寫System.IO.File.AppendAllText(sFilePath, "test content.");

在路徑“ ..inetpub / mysite / App_Data / errorLogs”處。

但是什么也沒發生。 在查看權限時,我們對App_Data文件夾擁有所有權限,但是會引發錯誤:

“ /”應用程序中的服務器錯誤。

拒絕訪問路徑'... \\ inetpub \\ mysite \\ App_Data \\ Logs \\ 20151026'。

說明:執行當前Web請求期間發生未處理的異常。 請查看堆棧跟蹤,以獲取有關錯誤及其在代碼中起源的更多信息。

異常詳細信息:System.UnauthorizedAccessException:拒絕訪問路徑'... \\ inetpub \\ mysite \\ App_Data \\ Logs \\ 20151026'。

沒有授權ASP.NET訪問請求的資源。 考慮將資源的訪問權限授予ASP.NET請求標識。 ASP.NET具有一個基本進程標識(在IIS 5上通常為{MACHINE} \\ ASPNET或在IIS 6和IIS 7上為Network Service,在IIS 7.5上通常是配置的應用程序池標識),如果應用程序沒有模擬,則使用該標識。 如果應用程序通過進行模擬,則身份將是匿名用戶(通常為IUSR_MACHINENAME)或經過身份驗證的請求用戶。

要授予ASP.NET對文件的訪問權限,請在文件資源管理器中右鍵單擊該文件,選擇“屬性”,然后選擇“安全性”選項卡。 單擊“添加”以添加適當的用戶或組。 突出顯示ASP.NET帳戶,然后選中所需訪問權限的框。

有沒有其他方法可以為我的網站編寫日志記錄?

嘗試將IIS_IUSRS添加到帶有日志的權限文件夾中。

就我而言,我期望在應用程序池上設置的用戶是擁有用File.AppendAllText()編寫的文件的用戶。

但是,如果您設置了Connect As,將使用該用戶。

在我的情況下,主網站以特定用戶的身份進行連接,而同一用戶在應用程序池中,但是我有一個虛擬應用程序,該虛擬應用程序使用相同的應用程序池,但以傳遞身份驗證的方式進行連接。 結果,虛擬應用程序編寫的任何文件的所有者都是本地用戶,稱為IUSR。

暫無
暫無

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

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