首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >linux将如何在工作服务.Net核心3.1中读取xml文件

问linux将如何在工作服务.Net核心3.1中读取xml文件
EN

Stack Overflow用户
提问于 2020-05-30 05:53:49
回答 1查看 253关注 0票数 0

我正在.Net Core中使用新的.Net Core项目模板。从配置文件读取凭据。配置文件在windows机器"D:/LC2/Files/Config.xml".中的位置

当我将worker service作为linux daemon运行时,linux将如何读取配置文件?因为只有windows机器的路径可用,而不是linux。

这是我读取配置文件的代码。

代码语言:javascript
复制
static List<intervalValue> GetConfig()
{
    XmlDocument doc = new XmlDocument();
    doc.Load("D:/LC2/Files/Config.xml");
    XmlNode node = doc.DocumentElement.SelectSingleNode("/parameters/intervalValue");
    {
        for (int i = 0; i < node.ChildNodes.Count; i++)
        {
            IntervalTypeList.Add(new intervalValue { Name = node.ChildNodes[i].Attributes["Name"].Value);
        }
    }
    return IntervalTypeList;
}

我怎样才能解决这个问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-31 21:38:09

您说得对,Linux守护进程将无法读取Linux上不存在的路径。

有几种方法您可以查看:

  1. 您的服务可以查看操作系统并在Linux上读取不同的路径/文件。例如,对于Windows,您正在读取硬编码位置( /opt/LC2/config.xml.
  2. You ),在Linux上,您可以使用另一个硬编码(如/opt/LC2/config.xml.
  3. You)可以为工作服务提供一个参数。这需要解析参数并教员工服务有关参数,比如--config /path/to/file。然后,您的员工服务将只读取通过的路径,而不必担心路径。无论运行/配置什么,您的服务都将在Windows和Linux上提供正确的路径。

,

  1. ,您可以添加对通过LC2_CONFIG这样的环境变量读取文件位置的支持。如果设置并指向一个文件,则使用该位置作为配置文件。否则会退回到硬编码值。在Linux上,运行守护进程的工具可以为其提供适合Linux.

的路径。

还有其他可能的选项和变体,但这些似乎是最明显的方法。

取决于节目的观众,你可能需要这三种方式。例如,git将使用配置文件的默认位置。但是它允许用户通过命令行提供特定的配置值,也允许用户通过环境变量指定配置。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62098424

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档