pbd22 said:
OK,
First, I think it is worth mentioning that the program in
question is a windows service.
If you mean "register the DLLs" in your previous query,
I feel silly, but I don't think I actually registered the DLLs
on the target server. I registered the DLLs inside my
IDE and everything worked just fine so, I guess I didn't
think to do anything different on the target machine. My Bad.
So, I am guessing I have my three Interop DLLs to register
on the target machine. But, when I try the below command:
RegAsm.exe "C:\PATH\Interop.MYDLL.dll" /tlb:Interop.MYDLL.tlb
I get the following error:
Types registered successfully
RegAsm: error RA0000 : CLR assembly "C:\PATH\Interop.MYDLL.dll" was
imported from a type library and cannot be re-exported to a type
library. Made sure the type library from which the assembly was
imported is registered.
No, no, In a previous reply you said that the dll's were VB6 (native) COM
dll's, you don't (can't) have to registered these with regasm!!!!
Do you think this is the solution to my permissions error and, if you
do, or, if
you think I should be doing this, then what am I doing wrong???
Thanks again.
Sorry, but if you don't or can't answer the question "who's writing the
error message to the eventlog", it will be very hard to help you out with
this. So, you need to find out which components writes to the eventlog.
Also you keep "guessing" about what other components you are dealing with,
what started as a "Service stops immediately", has become; a service that
calls into COM that call into exe that calls back into COM.
You need to have a clear overview about the different components in your
solution, you need to know exactly which are managed and which are
unmanaged, which are COM and which are not.
You need to know exactly which one calls the other and what resources each
of them are accessing, one (or more) of them (the
WindowsXYZServer.GetSpace() method/function) does *not* have the appropriate
rights to access a resource, because it runs in a security context (an
account) that has no privileges to do what is supposed to be done in that
method.
With "register DLL's" in terms of native COM dll's or exe's, I mean that
COM servers (DLL's and EXE's) need to be registered on the target system, by
running regsvr32 <mynativecom.dll> in case of a DLL, or running the server
exe with the option register (somecomserver.exe /register) in case of an exe
COM server. You can't call into the COM objects without registering.
You also have an *exe* in the solution that gets *called* by ?? and calls
into COM. What kind of exe is this? how is it "called"? Is it getting called
in terms of method calls, or do you mean that it's getting started from
within another component?
Willy.