C# WINDOWS服务 通过属性的方式 读txt文件问题

C# WINDOWS服务 通过属性的方式 读txt文件问题

问题描述:

Class1 类 我封装了一些属性 来读取 一个 txt文件 ,我在windiwos服务中调用这个属性,读取出来的时空字符串,代码如下:
C盘a.txt 文件里面时有值的。
类库:namespace1

namespace namespace1
{
    public class Class1
    {
        private string path = "C:\\a.txt";

        private string a = "";

        public string A
        {
            get
            {
                                a = File.ReadAllText(path);
                return a;
            }
            set
            {
                File.WriteAllText(path, value);
            }
        }
    }
}

windows服务:

namespace Service1  
{
    public partial class Service_1 : ServiceBase
    {
        Class1 c = new Class1();
        protected override void OnStart(string[] args)
        {
                string str = c.A;

                //输出日志
                //打印出来 str为 空字符串
        }
    }
}

UAC 已配置为 管理员权限

<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />

使用管理员账号安装的服务

代码没看出什么问题,应该是权限的问题。
你用什么账户运行的服务,是netuser还是system,总之右键点c:\1.txt这个文件,属性,安全性,然后给windows服务所在的用户读写权限。

确认下文件是UTF-8 或UTF-32格式吗?可以先用WriteAllText通过代码方式把内容写到文件中,然后再调用ReadAllText获取内容。

可参考下微软官网的ReadAllText相关介绍:
https://docs.microsoft.com/en-us/dotnet/api/system.io.file.readalltext?redirectedfrom=MSDN&view=netframework-4.8#System_IO_File_ReadAllText_System_String_