David
Mon Aug 08 05:34:32 CDT 2005
Correctly written code will work on Windows Server 2003 as easily on Windows
2000. I have plenty of binaries that run from NT4 through Windows Server
2003 without a hitch. For example, I have written a VB2 program using
various VBX controls that run just fine from Win 3.0 up through Windows
Server 2003 with no modifications. It tells me a lot about the compatibility
built into Windows when you understand your dependencies and take care of
requirements.
That said, there could be changes on Windows Server 2003 that cause issues.
And there could be bugs in your binaries that are exposed on Windows Server
2003.
So, I suggest you keep an open mind and do troubleshooting to figure out
which category your issue belongs to. Sometimes, something that is "easy" is
because it makes bad assumptions. Keep in mind that sometimes problems can
result from components that have code looking like this:
if ( OS = Windows 2000 )
do the right thing
else
do the wrong thing
This component fails on Windows Server 2003 -- but the problem is really
with the code's logic.
Right now, it sounds like DartTelnet registration code has problems working
on Windows Server 2003 for some reason It is supposed to write its ProgId
into the HKEY_CLASSES_ROOT node, with a value pointing to its CLSID. The
CLSID GUID is supposed to have a LocalSystem32 key that points to the actual
location of the DarTelnet implementation binary. Based on what FileMon
shows, this component's registration code screwed up, so when the ASP code
eventually calls into your component to create that component, it fails to
create it (by-design due to bad registration). Without debugging the
registration code, it will not be possible to determine where the problem
comes from. Based on what it appended incorrectly, I suspect this component
comes from the Win9x era and probably has some wrong dependencies on Win16.
At this point, you need to:
1. Determine from the provider of the DartTelnet control whether it supports
Windows Server 2003
2. If they do not support it, then realize you are on your own - if people
had truly working code, they tend to support it
Also, regarding the ACLs necessary on the DLLs -- I suggest browsing through
the following blog entry on how user identity works on IIS:
http://blogs.msdn.com/david.wang/archive/2005/06/29/IIS_User_Identity_to_Run_Code_Part_2.aspx
--
//David
IIS
http://blogs.msdn.com/David.Wang
This posting is provided "AS IS" with no warranties, and confers no rights.
//
"Corey Collins" <coreycollins@gmail.com> wrote in message
news:1123185153.659151.174810@z14g2000cwz.googlegroups.com...
I'm trying to use a DLL written in VB6 on a windows 2003 server in an
ASP page. The DLL worked fine with IIS on Windows 2000 and XP
computers but with 2003 I keep getting an error:
error '800a01ad'
ActiveX component can't create object
I have tried accessing the DLL with a VB6 test program and that works
fine. I have changed the permissions for the TSBS.dll (my dll file)
and the DartTelnet control, which is one thing my dll uses, too allow
full control for the IUSR and even Network Service. I have also made
sure the files were registered multiple times. When I run filemon I
get the following which is really weird and maybe this will be a clue
to my solution: QUEREY INFORMATION
C:\windows\system32\inetsrv32\Dart.Telnet.1 NOT FOUND Attributes:error.
I don't know why it is looking in the inetsrv32 directory for a file
named Dart.Telnet.1. Like I said before the Dart Telnet control is
registered in C:\Windows\System32 along with my dll. If anyone has any
ideas on what could be happening here it would be great. I don't
really understand why I'm having so many problems with 2003 and this
dll is so easy to set up on 2000. I just set it up on another 2000
machine yesterday without a hitch.
Thank you