程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> Windows Service 訪問遠程共享權限設置

Windows Service 訪問遠程共享權限設置

編輯:C#入門知識

最近為實現共享目錄之間的文件同步,開發了一個Windows Service。

考慮到在拷貝過程中,如果網絡忽然抽風訪問不了,導致文件拷貝不完整的情況,果斷拋棄.Net 自帶的 COPY 方法,而使用DOS命令下的XCOPY命令。

嗯。。。。。說干就干。。。

XCOPY方案驗證、開發、調試(在自個電腦上建了兩個共享目錄)。。。。半天時間,全部搞定。貌似事情進展的太順利了。。。。。

既然本地調試沒問題,那就部署到測試環境上吧。好吧。。。問題來了。

同步兩個共享目錄,居然失敗!查看日志,XCOPY的退出碼 ExitCode=4,也就是說路徑不正確。

奇怪。。。。沒理由啊。。。。。。。。在測試服務器上,用 \\IP\\ShareFolder 的方式,都是可以訪問的,並且能夠正常讀寫。

把剛才同步失敗的XCOPY命令在CMD窗口中運行,居然成功了。。。。。。

看到這估計你也想到了,Windows Service在訪問共享的時候,是沒有權限的。

谷歌。。。。。谷歌。。。。。。。找到加權限的辦法。

參考鏈接:http://stackoverflow.com/questions/9905281/how-to-access-to-a-shared-resource-with-a-windows-service-using-local-system-use

步驟如下:

1)首先找到具有共享目錄讀寫權限的用戶

2)在Windows Service的屬性中,選擇“登錄”選項卡,在“此用戶” 下,給一個有共享目錄讀寫權限的用戶。

3)點擊確定,重新啟動服務。

好了,懷著一個激動的心,重新啟動,重新同步,繼續失敗。。。。。。。。。。。。。OH,漏!!!!!!!!!!!!!!

不是說給服務加一個用戶就可以了麼。。。。。。騙紙。。。。。。。。。

繼續谷歌。。。谷歌。。。。谷歌。。。。。。。。。。。。。。。。。。

不得不說,Stackoverflow上面大牛就是多。。。

使用 NET USE 命令 建立與共享的鏈接

用法 :Net Use \\ServerIP\\ShareFolder Password /USER:User

廢話不多說,趕緊試一下。。。。。

命令成功完成。。。。懷著激動的心情,重新啟動一下服務。。。。。同步成功!!!

 

 

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved