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
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:
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.