首页 文章

如何在web.config中引用wwwroot路径文件 - Azure App服务

提问于
浏览
0

我在Azure App服务中部署了.Net web api . 我的日志文件夹位于WWWROOT文件夹中 . 我的文件夹结构如下

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

I want to refer

TraceLog.log

path in 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"

但是得到这个错误
enter image description here

3 回答

  • 0

    我建议您在Azure存储上编写日志,而不是使用旨在为IIS和Web应用程序框架提供临时文件存储的本地存储 .

  • 0

    你不能 . 他们设计它所以它不是很容易获得 . AppDomain.BaseDirectory或Environment.CurrentDirectory都没有指向那里......但您可以在%HOME%环境变量下找到它...但您必须在代码中调用ExpandEnvironmentVariables来引用路径或指定完整路径

    您应该注意,您的web.config基本上被忽略,因为app服务运行时有自己的web.config ...所以对路径的任何引用必须在您的代码中,而不是您的web.config

  • 0

    正如Thiago Custodio和Jeff提到的,我们可以轻松地使用代码 . 在您的情况下,请尝试使用以下代码 .

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

    作为Azure WebApp is sanboxd:\home 可用于具有读/写访问权限的沙箱 . 天蓝色的文件结构请参阅此document .

    主目录访问(d:\ home)每个Azure Web App都有一个由Azure Storage存储/支持的主目录 . 此网络共享是应用程序存储其内容的位置 . 此目录可用于具有读/写访问权限的沙箱 .

相关问题