Connecting to a network share not working in a Windows Service

J

JohnFol

I am using the Win23 API WNetCancelConnection2 and can sucessfully make a
connection to a share within my class. The class is called from a Windows
Form based test harness.

When I instantiate exactly the samce class from a Windows Wervice, I get "A
specified logon session does not exist. It may already have been terminated"
.. The error number is 1312.

I know the code to be good, so I suspect something around security / windows
accounts etc.

Any pointers?


(FYI I am using VB.Net and am an Admin on the machine)
 
L

Lance Wynn

You'll probably need to set the service to login under a specified user that
has access to the network share, and also has rights to login as service.
(The default is to login as the "System" user which is a local account, and
will not have access to network resources.)

Lance


I am using the Win23 API WNetCancelConnection2 and can sucessfully make a
connection to a share within my class. The class is called from a Windows
Form based test harness.

When I instantiate exactly the samce class from a Windows Wervice, I get "A
specified logon session does not exist. It may already have been terminated"
.. The error number is 1312.

I know the code to be good, so I suspect something around security / windows
accounts etc.

Any pointers?


(FYI I am using VB.Net and am an Admin on the machine)
 
J

JohnFol

Thanks for the ideas. Just to be clear, in "test" I validate my account
against a domain controller. My API call specifies a completely different
username / password.

I think the key point you are making is a Windows Service may not have
access to any network resources if started up as "LocalSystem"

I'll give it a bash,.
Many thanks
 
W

Willy Denoyette [MVP]

JohnFol said:
I am using the Win23 API WNetCancelConnection2 and can sucessfully make a
connection to a share within my class. The class is called from a Windows
Form based test harness.

When I instantiate exactly the samce class from a Windows Wervice, I get
"A specified logon session does not exist. It may already have been
terminated" . The error number is 1312.

I know the code to be good, so I suspect something around security /
windows accounts etc.

Any pointers?


(FYI I am using VB.Net and am an Admin on the machine)

Not sure what you intend to do with this "WNetCancelConnection2" call, you
can only cancel connections running in the same logon session as the current
session. Did you establish a network connection from within the service?

Willy.
 
J

JohnFol

Good grief, not only did I write Windiows Wervice, but I cut'n'paste the
wrong API!

Appologies to all.

The Correct API is "WNetAddConnection2"

FYI I tried one of the other suggestions and set the project installer to
use NetworkService. On my PC this is great, but on a.n.other server (where I
log on as Admin to install) I get

"The account name is invalid or does not exist, or the password is invalid
for the account name specified."

Unless I can install it I cannot set the account under which it runs, soI'm
a bit stumped.
 
W

Willy Denoyette [MVP]

JohnFol said:
Good grief, not only did I write Windiows Wervice, but I cut'n'paste the
wrong API!

Appologies to all.

The Correct API is "WNetAddConnection2"

FYI I tried one of the other suggestions and set the project installer to
use NetworkService. On my PC this is great, but on a.n.other server (where
I log on as Admin to install) I get

"The account name is invalid or does not exist, or the password is invalid
for the account name specified."

Unless I can install it I cannot set the account under which it runs,
soI'm a bit stumped.

Note that the "NetworkService" account is only available on XP and W2K3.
On W2K or NT you should run your service using domain account credentials.

Willy.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top