I never get ok with the COM+ contexts... There are so many context types like client context, call context etc... Adding to this .NET provides few attributes such as MustRunInClientContext... I couldn't find any sample or links that explain this...
Let me elaborate more. As the definition goes by saying "context" is a conceptual grouping of objects within a transaction. However when u instantiate a COM+ component (TransactionOption.Supported) within another COM+ component (TransactionOption.RequiresNew), when i check the ContextUtil.ContextID, the two components are instantiated in different contexts... WHY?
Secondly, the definition says MustRunInClientContext runs the component in the client context but if try this with the above component (TransactionOption.Supported) it most always results in an exception... WHY?
Third and final, this is different from contexts but i just found this... Just create a COM+ component (Inherit ServicedComponent, Set transaction - every thing normal - you can do this simply by selecting Transaction Component template in VB.NET)... If you give description attribute to any of the methods, you will get method level rolebased security exception - if you remove the description attribute, you won't get this exception...
phew, COM+ seems to be a land of uncertainty....