Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations strongm on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

AGAIN: server registration timeout with DCOM

Status
Not open for further replies.

almoes

Programmer
Jan 8, 2003
291
US
Hi all!

I have seen that this error appears in different places but still I don't get a solution.
I run a simple client/server apllication in VB6 and the DCOM is not working. This is the error I get in the event log of the server:

Source: DCOM
EventID: 10010
Description: The server <clsid> did not register with DCOM within the required timeout.

And this is the error on the event log of the client:

Source: DCOM
EventID: 10006
Description: DCOM got error &quot;Server execution failed &quot; from the computer MyServerName when attempting to activate the server: <clsid>

I checked all the DCOM settings and read through tones of microsoft papers on fixing bugs, but still dont get an answer. Any ideas?

Thanxs a lot!
 
I vagely remember having such an error in my event log too.
Although I cannot remember exactly in what stage of my server development it occured.

I do know however what things went wrong during my development. My server had a tray icon and it created a window. If any UI elements are being used by a remote server, the identity of this server must be 'Interactive user' because you need to use the current desktop to display these UI elements. Furthermore, if you are using connection points or some other callback mechanism, not only does your client need access rights to the server, but also the server needs access rights at your client machine.
And for this to solve (according to a MSDN article I read which, until so far, is the only solution that i got working) you need to set the default authentication level on the default properties page tab of your DCOM config at the client machine to [none].
 
Still doesn't work. There's no UI and no connection points. It's a real simple application just to make DCOM work. The example I got from here and its specified how to configure DCOM on the server, but I get all the time the error 429: 'can't create ActiveX object', and the mentioned logs in the event viewer.
 
Did you check all registry settings on both the client and the server (i.e. is there maybe an interface pointing to a non-existing typelibrary, or a typelibrary pointing to a non-exeisting path etc.) ?
 
As far as I can check, no. I even create the whole application again from scratch and with a different name to be able to debug it from new.
One thing I was wondering all the time. On the server, on the properties of the class, in the General tab, for local path I have c:\Program, but my program is installed in c:\program Files\MyServerexe\Myserverexe.exe is this correct?
And in the client, for local path, it points to the directory where I created the packages, but not to the exe of the server, is this also correct?
I couldn't find info on what this path should point to, maybe I made a mistake somewhere in the creation of the installation packages.
 
I am not sure, I have not used the pdw for a long time now.
Can you not just manually register the server app on the server machine and see what happens?
 
Go to the correct path, type the name of your server with argument regserver; i.e: MyServer.exe -regserver
 
Still doesn't work. I think I will start again from scratch and register everything manually. Once I have both exes, how do I proceed to register everything on both sides?
 
The client app need not be registered.
have you also registered the server app manually at the client machine? COM needs to know where to find the typlib to marshall your calls.
 
Not manually, the VB package makes that. You mean the CLIREG32 command?
 
I am not sure how to register a typelib manually.
You place a copy of your server on the client and register this (just for the test).

You can also browse with VB to your typelib and set a reference to it, but just to be safe try the first option (if this does not work then it is not necessary to try regsitering the typelib).
 
No success!!
I started the application from scratch and created the exes. I manually registered the server exe in the server with the -regserver option you said, and I manually registered the vbr file on the client with clireg32. The config of DCOM appears the same as I had before and still it doesn't work and I get the same errors in the event log. I start to get desperate, I have been now for nearly 3 days with this.
 
Just tried locally and it doesn't work, but this time I don't get any errors in the log event. However, it was working in the Visual Studio, so I don't think its the code. Something is wrong in the DCOM, but what??
 
You probably do not get any DCOM errors in the log because DCOM is not being used when working locally. Which error message did you get when trying locally?
 
AHA! the same, 'Connection failed: Error 429 - ActiveX component can't create object.
 
I think it is not properly registered then on your client machine...
 
then what is the proper mechanism? I think i tried everything, really. How would you do it?
 
Have you tried registering the server app on the client machine the same way you did on the server machine (i.e. Myserver.exe -regserver) ?
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top