PDA

View Full Version : COM+ Proxy Service NOT getting deployed



Joydeep
02-22-2007, 01:52 PM
We need to deploy a COM+ Proxy package on the target machine that is supposed to remotely connect to another server machine. On the build machine, we have the COM+ service deployed.
So, using InstallShield 11.5 project, we used the Component Services feature to create the proxy COM+ package supposed to get deployed to the target machine. But, when the installer is run on the target machine, then this COM+ service does not get deployed. We selected the "Proxy" checkbox for doing so.
Just to test, when I select the "Server" option for the COM+ in the Component Services feature, then it gets deployed on the target machine as a Server upon running the installer.
Can anyone tell me why is the COM+ service not getting deployed in proxy mode?

Proxy opiton check -> No COM+ is created.
Server option check -> COM+ server is created.
Proxy and Server options check -> COM+ server is created.

hidenori
02-22-2007, 04:06 PM
InstallShield actually creates DCOM instead of COM+ proxy to allow you remotely access to the components on a different machine.

Joydeep
02-22-2007, 04:54 PM
We have an application that uses this COM+ proxy service on the remote client machine to connect to the main server machine.

Is this a limitation with InstallShield 12.0 that COM+ packages are not created as proxy?

hidenori
02-23-2007, 01:02 AM
Since Microsoft's COM+ administration object model (COMAdminCatalog) does not provide the capability that enables us to create a new COM+ proxy, InstallShield cannot support it. At this time, you need to export your COM+ application as an application proxy to a MSI using Microsoft Component Serivces console, and run the package in order to install the COM+ proxy.

Sumit_Ahuja
02-23-2007, 05:14 AM
hi,
I have to implement the same in my project.But in my case i have fetch contruct string from the user.Can u help me in implementing that

vivekprasanna
02-23-2007, 06:02 AM
COM+ application can be created and the DLLs can be hosted in the COM+ using install script.

Check out the link:
http://community.installshield.com/archive/index.php?t-149723.html

vivekprasanna
02-23-2007, 07:02 AM
I guess Installshield always creates a COM+ Server application and not a Proxy appplication. I would suggest you to create a COM+ server, host dlls in the COM +, export it as a proxy application and run it wherever the proxy needs to be. All this can be done using installscript and i have done it sometiem back. You can even set the Identity in the COM + server application.

Sumit_Ahuja
02-25-2007, 11:12 PM
In Basic MSI project we have component services view.I am able to install my com+ application using the component service view.
Now the problem in hand is that i have to fetch contruct string for my components from the user. i.e. my contruct string would be provided by the user.
I dont think creating com components with installscript would be a great idea,since we can make use of component service view and i hope there would be a way to update contruct string at runtime.

hidenori
02-26-2007, 09:23 AM
You can use a custom Windows Installer property to specify the construction string at runtime as follows:

Open a Basic MSI project.
Go to the Component Services view.
Select the Component | Activation tab.
Type [MY_COMPLUS_CONSTRUCT_STRING] in the Construction String edit box.
Build a release.

You need to set a value to the MY_COMPLUS_CONSTRUCT_STRING property at runtime.

Sumit_Ahuja
02-26-2007, 11:53 PM
Thanks for the inputs.
But in my case the com+ application have over 20 components each having different connnection string.Moreover if new component is added then as per the methodology provided i have to create new variable.
Rather than doing this is there a way to loop through all the components of my com+ application and updating my connection string accordingly.

The connection string would be provided in some text file.
everytime i would be reading the text file for the connection string and the corresponding component. This is the concept i want would make the things more dynamic.
Is there a way to loop through components shown in component service view.

hidenori
03-01-2007, 06:52 PM
As vivekprasanna suggests, you need to write an InstallScript or MSI DLL custom action to loop through all your COM+ components and updating the connection string. The action needs to be sequenced to come after the ISComponentServiceInstall action where your COM+ application specified in the Component Services view is installed.

Sumit_Ahuja
03-01-2007, 10:59 PM
But for this i have to use installscript project instead of basic msi project.
Is there a way to do the same in msi project.

hidenori
03-01-2007, 11:07 PM
You can run InstallScript code in a Basic MSI project using an InstallScript custom action. If your preference is C++, you can use a MSI DLL custom action in that project type.