C#-Windows服務以LocalSystem賬戶安裝的話無法獲取我的文檔路徑

解决Windows服务中文件路径获取问题
本文介绍了解决Windows服务环境下无法通过System.Environment.GetFolderPath获取特定文件路径的问题。通过更改服务安装账户为用户账户,并输入当前登录用户的账号信息,实现了路径的正确获取。

如圖,如果Window服務以上圖 Account安裝運行,則無法獲取到 以下路徑:

System.Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)

 

解决方案:

1.将LocalSystem改成User,然后编译安装程序,在安装的时候填上当前的 登录用户的 账号信息即可。

 

 

参考资料:

MSDN明确的参考资料:https://social.msdn.microsoft.com/Forums/sqlserver/en-US/5ca05118-06c1-4e7f-908f-df2120a51f64/c-service-account-local-system-find-my-documents-file?forum=csharpgeneral

The windows services run under different user profile(LocalService, NetworkService, LocalSystem, User). If you want to access special folder under your account, you must set the serviceProcessInstaller account property to User, and set your account's username and password at the same time.

 

ServiceProcessInstaller类的Account属性值可以是ServiceAcount枚举的任一值,见表2

 

意义

  LocalSystem    设置这个值可以指定服务在本地系统上使用高度权限的用户账户,但这个账户允许匿名用户进入网络,因此它没有网络上的权限
  LocalService    这个账户类型给任意远程服务器提供计算机证书
  NetworkService    类似于LocalService,这个值指定把计算机的证书传送给远程服务器,但与LocalSystem不同,这种服务可以以非授权用户的身份 
    登录本地系统。顾名思义,这个账户只能用于需要从网络上获得资源的服务
  User    把Account属性设置为ServiceAccount.User,表示可以指定应在服务中使用的账户

转载于:https://www.cnblogs.com/x-poior/p/5732791.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值