簡體   English   中英

如何在web.config中引用wwwroot路徑文件-Azure應用服務

[英]How to refer wwwroot path files in web.config - Azure App service

我在Azure App服務中部署了.Net Web API。 我的日志文件夾位於WWWROOT文件夾中。 我的文件夾結構如下

↓WWWROOT
 >bin
 ↓Logs
  >TraceLog.log 
Web.Config

我想參考

TraceLog.log

web.config中的路徑。

我嘗試了以下方法

fileName="%home%\site\wwwroot\Logs\TraceLog.log" 
fileName="C:\DWASFiles\Sites\[your websitnmame]\site\wwwroot\Logs\TraceLog.log"
fileName="C:\DWASFiles\Sites\[your-websitename]\VirtualDirectory0\Logs\TraceLog.log"
fileName="~\Logs\TraceLog.log"
fileName="\Logs\TraceLog.log"

但是得到這個錯誤 在此處輸入圖片說明

我建議您不要在Azure存儲上編寫日志,而應該使用旨在為IIS和Web應用程序框架提供臨時文件存儲的本地存儲。

你不能 他們對其進行了設計,以使其不易閱讀。 AppDomain.BaseDirectory或Environment.CurrentDirectory均未指向該位置...但是您可以在%HOME%環境變量下找到它...但必須在代碼中調用ExpandEnvironmentVariables才能引用該路徑或指定完整路徑

您應該注意,由於應用程序服務運行時具有自己的web.config ...,因此基本上會忽略web.config ...,因此對路徑的任何引用都必須在代碼中,而不是在web.config中

正如Thiago Custodio和Jeff提到的那樣,我們可以輕松地使用代碼來做到這一點。 對於您的情況,請嘗試使用以下代碼。

string traceLogPath = Environment.GetEnvironmentVariable("HOME") + @"\site\wwwroot\logs\TraceLog.log";

由於Azure WebApp是sanbox ,因此d:\\ home可用於具有讀/寫訪問權限的沙箱.azure上的文件結構請參考此文檔

主目錄訪問(d:\\ home)

每個Azure Web App都有一個由Azure存儲存儲/備份的主目錄。 該網絡共享是應用程序存儲其內容的位置。 該目錄可用於具有讀/寫訪問權限的沙箱。

暫無
暫無

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

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