我有一个 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”
我的服务正在使用本地系统帐户运行,我不想使用绝对路径。
最佳答案
以下链接提供了一个优雅的解决方案。
由于我的服务同时作为控制台/服务运行,我刚刚调用了
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/