[英]Windows Service cannot access network location (UNC) Path
我有一個 windows 服務,它不斷地為新文件輪詢一個文件夾。對於本地目錄,這工作正常。但是當涉及到同一網絡中另一個系統上的 UNC 路徑時,該服務似乎無法訪問該文件夾。我已經提到這篇文章https://serverfault.com/a/881272 ; 它指出我需要以當前登錄的用戶身份運行該服務。我該怎么做?
我希望使用該服務監控的路徑是
\DESKTOP-PC\Users\me\myfolder
請指教
更新:
我已經使用 topshelf 開發了該服務。我想輪詢同一網絡中另一台本地計算機上的文件夾。我 go 到.network places,雙擊計算機名,它要求提供憑據,我輸入的用戶名和密碼遠程計算機我可以為該用戶訪問系統上的文件(在資源管理器中)。
現在,當我將服務設置為在這台機器下以本地機器用戶身份運行時,它無法訪問可以使用資源管理器訪問的遠程 UNC 路徑。我嘗試以遠程機器用戶身份安裝它,但它失敗了。
myService.exe install -username:DESKTOP-REMOTE\myname -password:mypassword
如果您嘗試在desktop-remote\\myname
帳戶下運行服務,則可能會失敗。 本地機器只喜歡屬於自己的帳戶。
我要做的就是轉過身來。 使遠程計算機共享一個文件夾供您的計算機輪詢。 這樣,遠程機器就可以控制它發布的數據,就像對象的private
或public
屬性一樣。 如果你沒有知道地址\\\\desktop-remote\\my-not-so-secret-folder\\
能夠讀取它的人,那么設置它以便任何人都可以閱讀。 如果你更隱秘,請將文件夾后綴為$ like: \\\\desktop-remote\\my-secret-folder$
。 現在它不是可見但仍然可以到達。
您還可以創建一個可以訪問所述文件夾的特殊帳戶。
然后,您可以讓您的服務在您的本地計算機上運行您選擇的任何帳戶(具有網絡訪問權限)。 讓它嘗試使用特殊帳戶連接到遠程文件夾。
(我學到了很難的方法,讀取共享文件夾在域中沒有域和機器的機器之間略有不同;任何人都可以讀取不起作用。至少在WindowsXP中就是這樣。從那時起我就一直這樣。不需要共享文件夾。)
HTH
我在 Azure 雲中的 UNC 存儲遇到了這個問題。 有效的是在 windows 憑據管理器中設置憑據:
您可以從 Azure 門戶獲取連接字符串。
這解決了我們的問題。
你可以看一下模擬。 此外,如果服務作為本地用戶運行,則有助於在文件夾所在的計算機上創建具有類似密碼的同一用戶。
看看這里(這篇文章中的OP遇到了同樣的問題,並且他/她已經給出了共享文件夾“Everyone訪問完全控制”。
https://serverfault.com/questions/177139/windows-service-cant-access-network-share
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.