You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Function部署Linux App Service后找不到azure-functions-host下log4net.config报错

问题根因

Azure Linux App Service 上运行的Azure Function默认工作目录为/azure-functions-host,你项目里的log4net.config默认是部署到站点的/home/site/wwwroot目录下,如果你写的是相对路径加载配置,log4net会默认去当前工作目录找文件,就会触发找不到文件的报错。

解决步骤
  • 首先配置log4net.config文件的部署属性:在Visual Studio中右键该文件,选择「属性」,将复制到输出目录选项设置为如果较新则复制,确保部署时文件会被同步到目标环境。
  • 不要用相对路径加载配置,改为通过执行程序集路径拼接配置文件绝对路径加载,示例代码如下:
using System.Reflection;
using System.IO;
using log4net.Config;

// 程序启动/初始化log4net的位置执行以下代码
var execAssembly = Assembly.GetExecutingAssembly();
var configFullPath = Path.Combine(Path.GetDirectoryName(execAssembly.Location), "log4net.config");
XmlConfigurator.Configure(new FileInfo(configFullPath));
  • 也可以通过环境变量拼接路径:Linux Function的HOME环境变量对应站点根目录,配置文件路径为Path.Combine(Environment.GetEnvironmentVariable("HOME"), "site/wwwroot/log4net.config")。
  • 部署后可以进入Azure门户对应Function的「高级工具(Kudu)」,切换到Bash终端,进入/home/site/wwwroot目录确认log4net.config文件存在,避免部署遗漏的问题。

内容的提问来源于stack exchange,提问作者lijevosmetalo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 05:36:07