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" />

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

2个回答

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

jsjyyjs07
神赐书宝 这个例子确实没有问题,是我程序的路径问题,已经解决了,谢谢
6 个月之前 回复
jsjyyjs07
神赐书宝 服务是以System运行的 txt文件 安全性里面 SYSTEM 有读写权限的
6 个月之前 回复

确认下文件是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_

jsjyyjs07
神赐书宝 我试过用代码 写入 数据 我在 winform 窗体程序里面 可以正常读写,就是放到 windwos服务 里面 就读不出来了
6 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问