views:

62

answers:

2

I have a windows service running on my local machine. It's configured to run under NT AUTHORITY\NETWORK SERVICE. The program access a network shared drive on a computer in the same subnet. That shared directory has Everyone set to Full control.

I'm getting False on File.Exists, but the file exists. I'm certain this is a permission issue. Am I forgetting anything? Note, the computer with the shared drive is not on a domain.

+1  A: 

Setting the share permissions is not enough. Also set the NTFS permissions adequately, then it'll work. Everyone Full Control on the share means, everyone can get through the network to the root of the share but from then on NTFS rights are used to determine what is allowed and what not.

jdehaan
Where can I change the NTFS permissions? I've set Full control to Everyone under both Share Permissions and the Security tab
Brian T
The NTFS permissions are in the security tab. Take care of the deny permissions in "Advanced". They override any other permission for a given user. If a user is member of several groups the most restrictive rights apply too. ACL permissions are really a tough thing. I am also quite sure there is something wrong there. Also check the level at which the permissions apply ("This folder, Subfolder and files") They are also only visible in the advanced tab. Hope it helps. The tab effective permissions allows you to see which permissions a user (eventually) has.
jdehaan
A: 

Solution was found here: http://serverfault.com/questions/177139/windows-service-cant-access-network-share

"The fact that the machine with the shared drive is not on a domain is where your main problem is. In order to get this to work you will have to configure the Windows Service to run as a specific user, and then you'll have to create an identical user on the remote system with the same password. It might work then.

The problem stems from the fact that in order to log in to a machine not in a domain, you have to log into that machine using an account that exists on that machine. The machine account for something else definitely won't exist on that local machine. By creating an identical user with an identical password, you might be able get the login to work." -sysadmin1138

I created identical accounts on both machines and the service account was able to access the shared drive. Having the servers on the same domain is a better solution, so I'm working towards that, but this will work in the mean time.

Brian T