I have several COM+ objects (amongst others):
BO.Dispatch, DAL.BaseDAL, Config, BF.Inventory, and DAL.Inventory
Each object (except DAL.BaseDAL and Config) implements the IGateway
interface (my creation; contains a single function, Gateway(String, String)
As Object). Every object is registered in COM+ and the GAC. In this case,
every object is in COM+ in a separate COM+ application, all as Server
Applications running as the Interactive User.

And I have the following sequence of events:
TestApp.exe runs
TestApp.exe calls a method on BO.Dispatch
BO.Dispatch calls DAL.BaseDAL
DAL.BaseDAL calls Config
Config returns a connection string stored in the registry
DAL.BaseDAL uses connection string to get a DataSet
BO.Dispatch examines values in DataSet
BO.Dispatch calls BF.Inventory
BF.Inventory calls DAL.Inventory
DAL.Inventory calls DAL.BaseDAL...

What *should* happen is the DAL.BaseDAL calls Config for the connection
string and gets another DataSet. However, I'm getting an error that
DAL.Inventory can't create a DAL.BaseDAL object because it can't find it
(full error is below). How can this be? It obviously *can* be found, since
BO.Dispatch uses it just fine. All objects are compiled with references to
the bin\[objectname].dll file they depend on, and the dependencies are set
up so that, when I compile all the objects, DAL.BaseDAL is one of the first
things to get compiled (after IGateway and Config). Specifically, here,
both BO.Dispatch and DAL.Inventory are set to depend on BaseDAL.

--Error follows--
{System.IO.FileNotFoundException}
[System.IO.FileNotFoundException]: {System.IO.FileNotFoundException}
HelpLink: Nothing
InnerException: Nothing
Message: "File or assembly name DAL.BaseDAL, or one of its dependencies, was
not found."
Source: "DAL.Inventory"
StackTrace: "
Server stack trace:
at DAL.Inventory.SearchInventory(String Security, String Transaction)
at DAL.Inventory.Gateway(String Security, String Transaction)
at
System.Runtime.Remoting.Messaging.StackBuilderSink.PrivateProcessMessage(Met
hodBase mb, Object[] args, Object server, Int32 methodPtr, Boolean
fExecuteInContext, Object[]& outArgs)
at
System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessa
ge msg, Int32 methodPtr, Boolean fExecuteInContext)
Exception rethrown at [0]:
at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage
reqMsg, IMessage retMsg)
at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData&
msgData, Int32 type)
at DAL.Inventory.Gateway(String Security, String Transaction)
at BF.Inventory.PassThrough(String Security, String Transaction)
at BF.Inventory.Gateway(String Security, String Transaction)
at
System.Runtime.Remoting.Messaging.StackBuilderSink.PrivateProcessMessage(Met
hodBase mb, Object[] args, Object server, Int32 methodPtr, Boolean
fExecuteInContext, Object[]& outArgs)
at
System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessa
ge msg, Int32 methodPtr, Boolean fExecuteInContext)
Exception rethrown at [1]:
at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage
reqMsg, IMessage retMsg)
at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData&
msgData, Int32 type)
at IGateway.Gateway(String Security, String Transaction)
at modDispatch.ExecuteTransaction(String ObjectName, String Security, String
Transaction)
at BO.Dispatch.Gateway(String Security, String Transaction)
at
System.Runtime.Remoting.Messaging.StackBuilderSink.PrivateProcessMessage(Met
hodBase mb, Object[] args, Object server, Int32 methodPtr, Boolean
fExecuteInContext, Object[]& outArgs)
at
System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessa
ge msg, Int32 methodPtr, Boolean fExecuteInContext)
Exception rethrown at [2]:
at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage
reqMsg, IMessage retMsg)
at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData&
msgData, Int32 type)
at BO.Dispatch.Gateway(String Security, String Transaction)
at TestApp.Form1.Button1_Click(Object sender, EventArgs e) in
C:\WMS\TestApp\Form1.vb:line 111"
TargetSite: {System.Reflection.RuntimeMethodInfo}