windows服务访问网络共享文件夹

pink12345 2008-03-31 10:22:21
我现在做了一个WINDOWS服务,
网络的目标电脑上有一个共享文件夹,通过\\***.***.***.***能够访问,并能够在目标电脑上创建文件

现在的要求是通过WINDOWS服务,能够向目标电脑的共享文件夹中生成文件

当我把WINDOWS服务中的代码移植到WINFORM中的时候,能够在目标电脑的共享文件夹中生成文件,
但运行WINDOWS服务的时候就不能生成文件了.

是不是权限的问题,还是WINDOWS服务不能在共享文件夹中生成文件?
...全文
1637 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
jobgaohao 2011-05-24
  • 打赏
  • 举报
回复
怎么解决的啊,高手?
jobgaohao 2011-05-24
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 pink12345 的回复:]
谢谢各位的帮忙.
终于搞定了,在codeproject上找到了解决方法.
给分!

帖出来,共享之.
i also searched on the web and found 2 rticles which solved my problem completely
http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=249102&……
[/Quote]
-------------------
大哥你是怎么解决的啊?
liuhui810 2009-06-12
  • 打赏
  • 举报
回复
不错
pink12345 2008-03-31
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 paulin 的回复:]
引用 8 楼 pink12345 的回复:
引用 2 楼 shalen520 的回复:
设置好共享文件夹的权限,然后在windows服务的机器上做一个映射,就跟写本地硬盘一样了

做了映射,但就是写不上去

你用什么做的映射?
可使用 api函数 WNetAddConnection2进行映射,然后成功后进行文件操作。
[/Quote]
我直接用"我的电脑"右键"映射网络驱动器"进行映射的。。
paulin 2008-03-31
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 pink12345 的回复:]
引用 2 楼 shalen520 的回复:
设置好共享文件夹的权限,然后在windows服务的机器上做一个映射,就跟写本地硬盘一样了

做了映射,但就是写不上去
[/Quote]
你用什么做的映射?
可使用 api函数 WNetAddConnection2进行映射,然后成功后进行文件操作。
pink12345 2008-03-31
  • 打赏
  • 举报
回复
没试过...现在我不需要读,只需要往里面写就可以了。权限是有的
alanfoxye 2008-03-31
  • 打赏
  • 举报
回复
读共享文件夹的文件可以么?
pink12345 2008-03-31
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 shalen520 的回复:]
设置好共享文件夹的权限,然后在windows服务的机器上做一个映射,就跟写本地硬盘一样了
[/Quote]
做了映射,但就是写不上去
pink12345 2008-03-31
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 alanfoxye 的回复:]
本地的管理员,当然本地的管理员要能直接访问\\ip\共享文件夹
[/Quote]
试过了...好象还是没用..
alanfoxye 2008-03-31
  • 打赏
  • 举报
回复
本地的管理员,当然本地的管理员要能直接访问\\ip\共享文件夹
pink12345 2008-03-31
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 alanfoxye 的回复:]
一般service服务默认的启动身份是local SYSTEM.

我想你可以把自定义服务的属性修改一下,把log on改成用管理员帐户登入,同时允许服务访问desktop。(在windows服务列表中点该服务的属性)

访问时不需要映射,直接用\\ip\共享文件夹
[/Quote]
"log on改成用管理员帐户登入"
是本地的管理员还是目标电脑的管理员?
pink12345 2008-03-31
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 paulin 的回复:]
可以明确地告诉你windows服务同样能够在共享文件夹中生成文件,如果可以请附代码分析。
[/Quote]

我就是在服务中有个方法
SaveImage()
里面调用了BitMap.Save(\\***.***.***.***\share\111.jpg)
在WINDOWS服务中不能成功生成啊
alanfoxye 2008-03-31
  • 打赏
  • 举报
回复
一般service服务默认的启动身份是local SYSTEM.

我想你可以把自定义服务的属性修改一下,把log on改成用管理员帐户登入,同时允许服务访问desktop。(在windows服务列表中点该服务的属性)

访问时不需要映射,直接用\\ip\共享文件夹
shalen520 2008-03-31
  • 打赏
  • 举报
回复
设置好共享文件夹的权限,然后在windows服务的机器上做一个映射,就跟写本地硬盘一样了
paulin 2008-03-31
  • 打赏
  • 举报
回复
可以明确地告诉你windows服务同样能够在共享文件夹中生成文件,如果可以请附代码分析。
pink12345 2008-03-31
  • 打赏
  • 举报
回复
谢谢各位的帮忙.
终于搞定了,在codeproject上找到了解决方法.
给分!

帖出来,共享之.
i also searched on the web and found 2 rticles which solved my problem completely
http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=249102&SiteID=1
&
http://support.microsoft.com/default.aspx?scid=kb;en-us;827421#appliesto

so finally i changed code in installer
SrvPInstaller.Account = ServiceAccount.User ;
SrvPInstaller.Username = "";
SrvPInstaller.Password = "";
and while installing the service it asked me the user id and password where i i/p my uid and pwd which had the rights for that network shared directory

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧