2011-05-26 67 views
2

我有一個WCF WSDualHttpBinding服務。該服務包含在帳戶類型爲LocalSystem的WindowsService中。無法在WCF服務中打開網絡文件

該服務正嘗試訪問存儲在與該服務相同的網絡上的另一臺機器上的網絡文件,例如, \\dataStoreMachine\\myshare\\fileToOpen.txt。如果服務在dataStoreMachine(與存儲文件的機器相同)上運行,則文件將成功打開。但是,如果該服務正在網絡中的另一臺計算機上運行,​​則找不到該文件。這是一個權限問題?我已經授予網絡共享的讀取權限。有什麼需要在服務綁定中指定,所以它有正確的權利?該文件可以從win explorer中運行該服務的機器瀏覽,所以我知道該文件確實處於它正在查看的位置。

網絡上的兩臺計算機(VMnet)都不在特定域中,但具有相同的用戶名和空密碼。

回答

2

LocalSystem帳戶沒有任何網絡訪問權限。假設您的服務器是ActiveDirectory域的一部分,您應該使用網絡服務帳戶來運行該服務。您需要將共享的讀取權限授予分配爲服務器計算機帳戶的特定域帳戶。這通常類似於:YourDomain \ MachineId123其中MachineId123是域中的實際計算機名稱。

如果您的服務器不在域中,那麼您可以在相同的本地帳戶技術上使用同步密碼。如果可能的話,我會避免這種情況,因爲在現實世界中,它很容易被密碼更改破壞。每臺服務器都會有一個本地機器帳戶,名稱與File123Shared類似,並且與其他機器上的帳戶具有相同的密碼。在將其配置爲能夠作爲服務運行以及可能需要的任何其他權限之後,您將使用該本地帳戶運行服務。