This article has been archived. It is offered "as is" and will no longer be updated.
When you use the Reflection class to dynamically load a Reflection.Assembly object, you may find that the transactions of an object are not committed when the Dispose method of the loaded object is called.
This problem occurs when all the following conditions are true:
You dynamically load an Reflection.Assembly class.
The ContextUtil.SetComplete method is called before a transaction begins.
You use the Dispose method to start the transaction.
This problem occurs because the just-in-time (JIT) compiler does not deliver Deactivate notification when assemblies that are loaded with the Reflection class call the ContextUtil.SetComplete method before they call the Object.Dispose method.
To work around this problem, comment out calls to the ContextUtil.SetComplete method before the transaction starts.
How to obtain the hotfix
This issue is fixed in the Microsoft Windows 2000 Server COM+ 1.0 Hotfix Package 28. For additional information, click the following article number to view the article in the Microsoft Knowledge Base:
828748 FIX: Availability of Windows 2000 Post-Service Pack 4 COM+ 1.0 hotfix rollup package 28
Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section of this article.