http://www.bkjia.com/C_jc/822288.html
最近為實(shí)現(xiàn)共享目錄之間的文件同步审丘,開(kāi)發(fā)了一個(gè)Windows Service。
考慮到在拷貝過(guò)程中,如果網(wǎng)絡(luò)忽然抽風(fēng)訪(fǎng)問(wèn)不了,導(dǎo)致文件拷貝不完整的情況媚狰,果斷拋棄.Net 自帶的 COPY 方法岛杀,而使用DOS命令下的XCOPY命令阔拳。
嗯。类嗤。糊肠。。遗锣。說(shuō)干就干货裹。。精偿。
XCOPY方案驗(yàn)證弧圆、開(kāi)發(fā)、調(diào)試(在自個(gè)電腦上建了兩個(gè)共享目錄)笔咽。搔预。。叶组。半天時(shí)間拯田,全部搞定。貌似事情進(jìn)展的太順利了甩十。船庇。。侣监。鸭轮。
既然本地調(diào)試沒(méi)問(wèn)題,那就部署到測(cè)試環(huán)境上吧橄霉。好吧窃爷。。酪劫。問(wèn)題來(lái)了吞鸭。
同步兩個(gè)共享目錄,居然失敻苍恪刻剥!查看日志,XCOPY的退出碼 ExitCode=4滩字,也就是說(shuō)路徑不正確造虏。
奇怪御吞。。漓藕。陶珠。沒(méi)理由啊。享钞。揍诽。。栗竖。暑脆。。狐肢。在測(cè)試服務(wù)器上添吗,用 \\IP\\ShareFolder 的方式,都是可以訪(fǎng)問(wèn)的份名,并且能夠正常讀寫(xiě)碟联。
把剛才同步失敗的XCOPY命令在CMD窗口中運(yùn)行,居然成功了僵腺。鲤孵。。想邦。裤纹。。
看到這估計(jì)你也想到了丧没,Windows Service在訪(fǎng)問(wèn)共享的時(shí)候鹰椒,是沒(méi)有權(quán)限的。
谷歌呕童。漆际。。夺饲。奸汇。谷歌。往声。擂找。。浩销。贯涎。。找到加權(quán)限的辦法慢洋。
參考鏈接:http://stackoverflow.com/questions/9905281/how-to-access-to-a-shared-resource-with-a-windows-service-using-local-system-use
步驟如下:
1)首先找到具有共享目錄讀寫(xiě)權(quán)限的用戶(hù)
2)在Windows Service的屬性中塘雳,選擇“登錄”選項(xiàng)卡陆盘,在“此用戶(hù)” 下,給一個(gè)有共享目錄讀寫(xiě)權(quán)限的用戶(hù)败明。
3)點(diǎn)擊確定隘马,重新啟動(dòng)服務(wù)。