gpt4 book ai didi

.net - .Net Windows 服务的相对路径问题..?

转载 作者:行者123 更新时间:2023-12-02 20:12:41 24 4
gpt4 key购买 nike

我有一个 Windows 服务,它正在尝试从应用程序目录访问 xml 文件。

Windows服务安装目录:C:\Services\MyService\MyService.exe
xml文件的路径:C:\Services\MyService\MyService.xml

我正在尝试使用以下代码访问该文件。

using (FileStream stream = new FileStream("MyService.xml", FileMode.Open, FileAccess.Read))
{
//Read file
}

我收到以下错误。

“找不到文件:C:\WINDOWS\system32\MyService.xml”

我的服务正在使用本地系统帐户运行,我不想使用绝对路径。

最佳答案

以下链接提供了一个优雅的解决方案。

http://haacked.com/archive/2004/06/29/current-directory-for-windows-service-is-not-what-you-expect.aspx/

由于我的服务同时作为控制台/服务运行,我刚刚调用了

Directory.SetCurrentDirectory(AppDomain.CurrentDomain.BaseDirectory) 

在将其作为服务运行之前

static void Main(string[] args)
{
if (args.Length == 0)
{
Directory.SetCurrentDirectory(AppDomain.CurrentDomain.BaseDirectory);
RunAsService();
}
else
{
RunAsConsole();
}
}

关于.net - .Net Windows 服务的相对路径问题..?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2714262/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com