我正在.Net Core中使用新的.Net Core项目模板。从配置文件读取凭据。配置文件在windows机器"D:/LC2/Files/Config.xml".中的位置
当我将worker service作为linux daemon运行时,linux将如何读取配置文件?因为只有windows机器的路径可用,而不是linux。
这是我读取配置文件的代码。
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;
}我怎样才能解决这个问题?
发布于 2020-05-31 21:38:09
您说得对,Linux守护进程将无法读取Linux上不存在的路径。
有几种方法您可以查看:
/opt/LC2/config.xml./opt/LC2/config.xml.--config /path/to/file。然后,您的员工服务将只读取通过的路径,而不必担心路径。无论运行/配置什么,您的服务都将在Windows和Linux上提供正确的路径。,
LC2_CONFIG这样的环境变量读取文件位置的支持。如果设置并指向一个文件,则使用该位置作为配置文件。否则会退回到硬编码值。在Linux上,运行守护进程的工具可以为其提供适合Linux.的路径。
还有其他可能的选项和变体,但这些似乎是最明显的方法。
取决于节目的观众,你可能需要这三种方式。例如,git将使用配置文件的默认位置。但是它允许用户通过命令行提供特定的配置值,也允许用户通过环境变量指定配置。
https://stackoverflow.com/questions/62098424
复制相似问题