PDA

Click to See Complete Forum and Search --> : Any help on this would be greatly appreciated


OUSoonerFan
Oct 7th, 2002, 05:21 PM
I have been developing a client/server app with events. The Client is a standard exe and the server side is an activex exe. When I attempt to create the object on the server I get a permission denied error. Err. Number 70. Should I be trying to use an ActiveX .dll to access and create the object for the Active X exe on the server.

Basically what happen is my client app send the server app a value to process once it has been processed the server activex exe sends back a result based on the process to the client app. I am not currently using an ActiveX dll. Should I be. As it is right now the Standard exe(Client app) is trying to create the object on the server. And The server side of it has to return events. Basically the value based on the results. Am I doing this right. What would be the best way to do that.
I am using Visual Basic Enterprise 6.0

Thanks for any help you can provide,

deja
Oct 8th, 2002, 01:03 AM
hi,
i already post u (in the previous thread u opened) an answer.
when u put an ActiveX EXE on a server, and let your clients access to it, all the communication work (between clients and server) with DCOM.
the purpose of DCOM is just for that kind of job. it takes care to deliver binary packet that represent the message between the remote client and server.
DCOM also support security, and because of that u must configure it properly (with dcomcnfg of course).

your question about ActiveX DLL depend on your application type.

the main difference between ActiveX EXE and DLL is the process boundaries.
ActiveX EXE always run in a separate process while ActiveX DLL can run either in the client process or in seperate process called DLL surrogate.
COM+, for instance, is a kind of surrogate.

maybe if u could post some more information about your application i would help u decide better.

OUSoonerFan
Oct 8th, 2002, 11:44 AM
Thanks Deja,
Here is the run down of what the app is doing.
The heirachry is: 2 Active X exe and 1 Standard exe.
1 ActiveX exe resides on a telephony server( call this one ServerSide) the other resides on the client machine or the Goldmine Server(Call this one Flipper).
The standard exe( call this one Admin) Flipper.

If you are not sure what Goldmine is, it is a contact manager with a SQL database.

The client machine(Admin) sends to Flipper. Ok grab me records from goldmine( using SQL statement). Flipper then grabs the records and sends them back to The Admin program where they get stored in a database. The Admin program then determines if any agents are logged in. If so then it sends a certain amount of the records to ServerSide to be dialed by the telephony server. After the number has been ServerSide then sends the result of the call back to the admin program. Whe the admin program recieves it, it sends it to Flipper to populate a goldmine record.

On a local machine running Flipper and ServerSide it works fine. When I move server side to the server is when I start encountering the permission issues.

When I run it on the local machine I can use Set CServerSide = new prjCServerSide.CServer.Side.

When I move it to the Server I am using.
Set CServerSide = CreateObject("prjCServerSide.CServerSide", --servername--)

Thanks again for the assistance.

deja
Oct 10th, 2002, 01:56 AM
sorry for my english.

i think in your case it's the best to use COM+.
if you have win2k on the server (where the ActtiveX running) it is perfect, because COM+ is part of it.
COM+ is a runtime environment for COM objects.
it gives your objects very useful services like Transaction supporting, Queued components, Object pooling and more.

ActiveX EXE is a good solution when u want to A) create an executable application that support also OLE automation (i.e. other clients could use that application at runtime). B) when u want to implement multi-thread server application (if you specify "Thread per Object" in the project properties your server will create a new thread for each client accessed your component, by that neither client will block the others).

ActiveX DLL is different because it always run in a host application (i.e. exe) and cannot launch by itself (and that's the reason why u need ActiveX EXE when u want to use remote components).
so if u want to implement remote DLL server u need some kind of host application.
COM support this option and it called DLL surrogate.
COM+ uses surrogate to luanch COM objects automatically (so u don't have to concern about implementing DLL surrogate by yourself) + some services.

when u implement ActiveX EXE u have to take care of registering your clinets (produce remote files, copy them on the clients, use some registration tool like clireg to add key in registry, configure DCOM etc.) and it is very frustrating.
in COM+ on the other hand it is much more easy to distribute your components at clients.

so if u don't require the things i indicate above about ActiveX EXE, u should implement your application with COM+.

valcgn
Oct 10th, 2002, 10:09 AM
HI,

I 've read your discussion ... and noticed it si very close of the thread i've just started
"Configuration needed to work with DCOM"

I am interested in the configuration needed on the client side!!
I have run DCOMCnfg... and I think I did the configuration correctly.. it seems streight forward.:)

Am I able to test this in design mode...
or should I compile my ActivexEXE and standard exe ... and after that test??

Thanks!!

OUSoonerFan
Oct 10th, 2002, 10:30 AM
Thanks Deja,
I will test it and see how it goes. And keep everyone informed. Val not sure about that I am battling that myself. If I find the resolution I will post it on here for you.