Kbase P33360: Appserver received error 293 reading / writing to a mapped drive on Windows XP , or 2003
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  8/10/2009 |
|
Status: Verified
SYMPTOM(s):
The AppServer cannot find a procedure that is located on a mapped network drive.
Write to a mapped drive, from code running on an AppServer fails.
The AppServer cannot write to a file located on a mapped drive.
** "<file-name>" was not found. (293)
** Unable to open file: <file-name>. Errno=2. (98)
FACT(s) (Environment):
PROPATH includes network mapped drive.
AppServer can write to the drive when using a UNC path instead of a mapped drive letter.
Issue occurs when the AdminServer is started as a Windows Service.
Issue does not occur when the AdminServer is started from command line using proadsv command (Command syntax: proadsv -start)
Problem occurs even is the same user is used to start the AdminServer as a Service.
Windows XP
Windows 2003
Progress 9.x
OpenEdge 10.x
CHANGE:
Upgraded AppServer system to Windows 2003
CAUSE:
This is a known Microsoft issue. See Microsoft Article IS: 180362 INFO: Services and Redirected Drives for a more detailed explanation. The following is an excerpt from that article.
A service should not directly access local or network resources through mapped drive letters. Additionally, a service should not use the WNetXXXXXXX APIs to add, remove, or query any mapped drive letters. Although the WNetXXXXXXX APIs may return successfully, the results will be incorrect. A service (or any process that is running in a different security context) that must access a remote resource should use the Universal Naming Convention (UNC) name to access the resource. UNC names do not suffer from the limitations described in this article.
When the system establishes a redirected drive, it is stored on a per-user basis. Only the user himself can manipulate the redirected drive. The system keeps track of redirected drives based on the user's Logon Security Identifier (SID). The Logon SID is a unique identifier for the user's Logon Session. A single user can have multiple, simultaneous logon sessions on the system.
If a service is configured to run under a user account, the system will always create a new logon session for the user and then launch the service in that new logon session. Thus, the service cannot manipulate the drive mappings that are established within the user's other session(s).
FIX:
1. Start the AdminServer from command line within the same user session that was used to map the network drive to a drive letter.
2. Change the PROPATH to use UNC naming convention instead of a mapped drive letter.
It may be necessary to use the fully qualified domain name depending upon how your hosts or DNS (Domain Name Server) has the machine name configured.