我在Azure App服务中部署了.Net web api。我的日志文件夹位于WWWROOT文件夹中。 我的文件夹结构如下
↓WWWROOT
>bin
↓Logs
>TraceLog.log
Web.Config
我想参考
web.config中的TraceLog.log
路径。
我尝试了以下方式
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"
答案 0 :(得分:0)
我建议您在Azure存储上编写日志,而不是使用旨在为IIS和Web应用程序框架提供临时文件存储的本地存储。
答案 1 :(得分:0)
你做不到。他们设计它所以它不是很容易获得。 AppDomain.BaseDirectory或Environment.CurrentDirectory都没有指向那里......但您可以在%HOME%环境变量下找到它...但您必须在代码中调用ExpandEnvironmentVariables来引用路径或指定完整路径
您应该注意,您的web.config基本上被忽略,因为应用服务运行时有自己的web.config ...所以对路径的任何引用必须在您的代码中,而不是您的web.config
答案 2 :(得分:0)
正如Thiago Custodio和Jeff所说,我们可以轻松地使用代码。在您的情况下,请尝试使用以下代码。
string traceLogPath = Environment.GetEnvironmentVariable("HOME") + @"\site\wwwroot\logs\TraceLog.log";
作为Azure WebApp is sanbox, d:\ home 可用于具有读/写访问权限的沙箱。天蓝色的文件结构请参阅此document。
主目录访问(d:\ home)
每个Azure Web App都有一个由Azure Storage存储/支持的主目录。此网络共享是应用程序存储其内容的位置。此目录可用于具有读/写访问权限的沙箱。