linux 守护进程如何读取 worker 服务 .Net Core 3.1 中的 xml 文件
How linux daemon will read xml file in worker service .Net Core 3.1
我正在 .Net Core
中使用新的 worker service
项目模板。从配置文件中读取凭据。 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;
}
我该如何解决这个问题?
你是对的,Linux 守护进程将无法读取 Linux 上不存在的路径。
您可以参考以下几种方法:
您的服务可以查看 OS 并在 Linux 上读取不同的 path/file。例如,对于 Windows,您正在读取硬编码位置 @'D:\LC2\Files\Config.xml'
,而对于 Linux,您可以使用另一个硬编码,例如 /opt/LC2/config.xml
。
您可以为辅助服务提供参数。这需要解析参数并向您的辅助服务传授参数,例如 --config /path/to/file
。然后您的工作人员服务将只读取传入的路径,而不必担心路径。无论 runs/configures 您的服务将在 Windows 和 Linux.
上提供正确的路径
您可以添加对通过环境变量读取文件位置的支持,例如 LC2_CONFIG
。如果它已设置并指向一个文件,请将该位置用作配置文件。否则退回到硬编码值。在 Linux 上,运行守护程序的工具可以为其提供适合 Linux.
的路径
还有其他可能的选项和变体,但这些似乎是最明显的方法。
根据节目的观众,您可能需要全部三个。例如,git
将使用配置文件的默认位置。但它会让用户通过命令行提供特定的配置值,也让用户通过环境变量指定配置。
我正在 .Net Core
中使用新的 worker service
项目模板。从配置文件中读取凭据。 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;
}
我该如何解决这个问题?
你是对的,Linux 守护进程将无法读取 Linux 上不存在的路径。
您可以参考以下几种方法:
您的服务可以查看 OS 并在 Linux 上读取不同的 path/file。例如,对于 Windows,您正在读取硬编码位置
@'D:\LC2\Files\Config.xml'
,而对于 Linux,您可以使用另一个硬编码,例如/opt/LC2/config.xml
。您可以为辅助服务提供参数。这需要解析参数并向您的辅助服务传授参数,例如
--config /path/to/file
。然后您的工作人员服务将只读取传入的路径,而不必担心路径。无论 runs/configures 您的服务将在 Windows 和 Linux. 上提供正确的路径
您可以添加对通过环境变量读取文件位置的支持,例如
LC2_CONFIG
。如果它已设置并指向一个文件,请将该位置用作配置文件。否则退回到硬编码值。在 Linux 上,运行守护程序的工具可以为其提供适合 Linux. 的路径
还有其他可能的选项和变体,但这些似乎是最明显的方法。
根据节目的观众,您可能需要全部三个。例如,git
将使用配置文件的默认位置。但它会让用户通过命令行提供特定的配置值,也让用户通过环境变量指定配置。