大家好,我有个window services 服务,里面有段复制文件的代码,但是一直报
System.UnauthorizedAccessException: 拒绝存取路径 '\\192.168.1.100\wwwroot\rssrvpolicy.config'。
於 System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
於 System.IO.File.InternalCopy(String sourceFileName, String destFileName, Boolean overwrite)
於 System.IO.File.Copy(String sourceFileName, String destFileName, Boolean overwrite)
於 TestService.TestService.OnStart(String[] args) 於 D:\WeiXin2\TestService\TestService\TestService.cs: 行 23
代码如下
protected override void OnStart(string[] args)
{
try
{
//string sfile=
File.Copy(@"\\192.168.1.100\wwwroot\rssrvpolicy.config", @"D:\WeiXin2\TestService\rssrvpolicy.config", true);
}
catch (Exception ex)
{
File.WriteAllText(@"D:\WeiXin2\TestService\log.txt", ex.ToString(), System.Text.Encoding.UTF8);
}
// TODO: 在此加入启动服务的程式码。
}
复制文件 的代码在正常的window form中都能复制,就是添加到服务里就报错了,
\\192.168.1.100\wwwroot\rssrvpolicy.config这个文件什么权限都给了,可还是报拒绝存取路径 '\\192.168.1.100\wwwroot\rssrvpolicy.config'。有谁能帮我解决一下,谢谢了
window service服务中复制文件报错
答案:2 悬赏:10 手机版
解决时间 2021-03-10 09:40
- 提问者网友:wodetian
- 2021-03-09 13:23
最佳答案
- 五星知识达人网友:夜风逐马
- 2021-03-09 14:12
这是由于服务的运行帐户和你直接双击winform时的帐户不同造成的,前者不允许访问网络(一般是local system账户)。
解决方案大致有这么几种:
1、给服务换个账户运行,比如换成你当前使用账户,并且允许交互;(这个实现最简单)
2、把网络地址映射成本地驱动器;
3、在服务中模拟本地用户身份;
解决方案大致有这么几种:
1、给服务换个账户运行,比如换成你当前使用账户,并且允许交互;(这个实现最简单)
2、把网络地址映射成本地驱动器;
3、在服务中模拟本地用户身份;
全部回答
- 1楼网友:逃夭
- 2021-03-09 15:11
这是哪里提示的?是运行什么程序才提示的吗?(在你没说之前我不知道) 不过有一点可以确定,这是你现在系统的文件和安装好系统时相比,少了这么一个文件,解决方法就是用你装系统时所用的系统光盘再次放入光驱,让它自动查找,这样就可以解决了
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯