I have a legacy 3rd party COM .dll that is used to provide an Excel-callable interface to a proprietary database product. The .dll runs on the same physical machine as Excel. I have a need to execute the .dll (and the database it is calling) on a remote server while still maintaining simple Excel callability from the client. I'm totally confused by all the different MS technologies that seem to hint there is an easy way to do this. Can someone please point me in the right direction (easier is better)?
+2
A:
There are 3 steps:
- Register the COM DLL on the remote server.
- Tell COM to go to this server to find the COM DLL.
Configure security.
In order for a COM server that is a DLL to run in its own process, it needs a COM surrogate (see MSDN).
In Excel, if you use VBA to get at the COM DLL, the CreateObject method has an optional parameter that is the machine where the server is located, which is exactly what you need. If you do not use VBA, I am afraid that you need to write a proxy server that forwards the calls to the real server. I could not find a way to do this by configuration.
Use component services on the remote server to setup security, so that users from Excel can launch and use the COM server.
Timores
2010-04-18 19:41:28