title: Calling a remote .NET DLL inside COM+ without the proxy installation
body: <p>We have a three tier application entirely developed in .NET 4.0 (C#). As the enterprise application server we use COM+ 1.5 (I know it's a little bit legacy...). There are a server part and a client part both developed in C# for .NET 4.0.</p>
  
  <p>The server part exposes services inheriting the ServicedComponent class and returning objects which implement the "Serializable" attribute. The client calls the remote classes via the COM+ exported proxy of the component. We distribute the client app through ClickOnce and we have to install, with Admin privileges, the COM+ generated Proxy onto every client machine. This is the bad point.</p>
  
  <p>So we are trying to evaluate other techniques which allow us to eliminate this proxy installation but it's not so clear how to do this. We'd like to find a low impact way that allow us to use the same COM+ part and including in some way the Proxy into the client side code.</p>
  
  <p>We have tried to use code like this in the client part but still requires the COM registration.</p>
  
  <pre><code>Type comObjectType = Type.GetTypeFromProgID("SumNameSpace.SumClass", "servercomplus", true);
  SumInterface comObject = Activator.CreateInstance(comObjectType) as SumInterface;
  </code></pre>
  
  <p>We thought that using in the client part the interface instead the class would have to work, but we have the exception:</p>
  
  <pre><code>Runtime.InteropServices.COMException (0x800401F3): Invalid class string (Exception from HRESULT: 0x800401F3 (CO_E_CLASSSTRING))
  </code></pre>
  
  <p>This error should happen if there aren't the correct information about the Interface in the Windows Registry, but we don't know...</p>
  
  <p>Any idea?</p>
  
  <p>thanks a lot</p>