C# 注册的WINDOWS服务 不能访问映射盘 正常的exe文件是可以访问的,注册成服务以后就访问不了映射盘了,有遇到过的吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 一般是权限的问题。运行WINDOWS服务的帐号没有访问映射盘的权限 运行服务的账号和正常执行exe的账号是一个。 你真的很确认是同一个帐号?就是同一个账户,登陆服务的和正常执行EXE的是同一个用户。日志信息:System.IO.DirectoryNotFoundException: パス 'Y:\Bee_DB1.6\MyConfig\Resource\RSC2TDX.xml' 找不到部分路径 找不到部分路径 就是你映射的驱动器不存在啊映射网络驱动器的时候,有些选项的,如登录时重新连接,windows服务是在没有登录的情况下就能运行的,修改下配置测试下 网络映射盘在机器刚开的时候是找不到的。需要手动打开盘符寻找一次。所以你还是用绝对路径,比如 \\192.168.0.1\aaa这样的方式访问才行。 那现在的问题就不是程序能不能访问映射盘,而是windows以何种机制管理映射盘了。 不一定能完成,也许windows有提供api。但是没见过。不好说。 windows服务找不到,还是没有映射出来。你可以使用代码去映射, 服务里面的代码去进行映射。你说你的服务程序运行的帐号跟你登录的相同,你是怎么断定的?服务程序设置的是本机帐号启动的还是另外一个计算机帐号?本机的帐号怎么去访问另外的计算机的资源呢?你exe程序可以,是因为你映射的时候输入了帐号和密码的 程序编写的WIndows服务是属于System账户的,但是改账户不具有NetWork的访问权限,所以无法访问网络的资源。 您可以试着查找如何将服务的启动账户设置成具有NetWork权限的办法。不过这样您的服务可以失去对本地系统的某些访问权限。另外,如果您在服务器程序中加入映射网盘的代码,结果是无法映射的。 先写个 batch 档 去做映射网盘的操作 就可以先确认是不是权限的问题当然是透过 windows services 去呼叫 batch filewindows services 的权限可以加大些,在 属性/登录裹可以修改成 administrators 也可以协助了解是不是权限的问题 > windows服务找不到,还是没有映射出来。应该是找不到,因为异常信息是路径的一部分不存在。> 你可以使用代码去映射, 服务里面的代码去进行映射。这是一种解决方法,不是我们最想要的方法。> 你说你的服务程序运行的帐号跟你登录的相同,你是怎么断定的?安装服务的时候指定的账户,就是执行exe文件的账户。> 服务程序设置的是本机帐号启动的还是另外一个计算机帐号?本机账号,就是exe文件执行的账号。> 本机的帐号怎么去访问另外的计算机的资源呢?本机账号怎么不能访问另外计算机的资源?为什么exe文件可以访问呢?> 你exe程序可以,是因为你映射的时候输入了帐号和密码的现在基本知道原因了,还在解决中。在服务里面创建一个虚拟用户,模拟登陆。正在尝试中 19楼已经是正解,你想在服务中访问映射盘是很麻烦的。服务中应该直接去访问UNC路径,这也是微软产品遵循的方式,support.microsoft.com/kb/257174这篇文章就是以IIS为例子。 调用WNetAddConnection2,进行磁盘映射. 关于网络编程的 dataset designer中dataadapter的问题 关于mapeasy地图显示 如何给treeview的指定节点,添加响应函数 咨询关于开源的东西----转PDF的软件 Mdi的问题! 编写C#代码时,一个字符串太长如何换行? ASPNET c#正则表达式问题 安装VS2003格了又装,装了又格,折腾了一个多月还是不行,朋友们有空入来看看不妨 串口猫收发短信的问题! visual studio 2008 反应很慢,为什么?不是病毒
日志信息:
System.IO.DirectoryNotFoundException: パス 'Y:\Bee_DB1.6\MyConfig\Resource\RSC2TDX.xml' 找不到部分路径
那现在的问题就不是程序能不能访问映射盘,而是windows以何种机制管理映射盘了。
你说你的服务程序运行的帐号跟你登录的相同,你是怎么断定的?服务程序设置的是本机帐号启动的还是另外一个计算机帐号?本机的帐号怎么去访问另外的计算机的资源呢?
你exe程序可以,是因为你映射的时候输入了帐号和密码的
当然是透过 windows services 去呼叫 batch filewindows services 的权限可以加大些,在 属性/登录裹可以修改成 administrators 也可以协助了解是不是权限的问题
应该是找不到,因为异常信息是路径的一部分不存在。
> 你可以使用代码去映射, 服务里面的代码去进行映射。
这是一种解决方法,不是我们最想要的方法。
> 你说你的服务程序运行的帐号跟你登录的相同,你是怎么断定的?
安装服务的时候指定的账户,就是执行exe文件的账户。
> 服务程序设置的是本机帐号启动的还是另外一个计算机帐号?
本机账号,就是exe文件执行的账号。
> 本机的帐号怎么去访问另外的计算机的资源呢?
本机账号怎么不能访问另外计算机的资源?为什么exe文件可以访问呢?
> 你exe程序可以,是因为你映射的时候输入了帐号和密码的
现在基本知道原因了,还在解决中。在服务里面创建一个虚拟用户,模拟登陆。正在尝试中