Microsoft KB Archive/298127

= FIX: New STA Object Cannot Join Caller's STA If the Caller Is Not Configured =

Article ID: 298127

Article Last Modified on 5/28/2003

-

APPLIES TO


 * Microsoft COM+ 1.0, when used with:
 * Microsoft Windows 2000 Service Pack 2

-



This article was previously published under Q298127



SYMPTOMS
If a COM+ component (Component1) is marked as single-threaded apartment (STA), when Component1 is instantiated by an STA thread that is not from the COM+ STA thread pool, Component1 is not created in the caller's thread. In other words, Component1 is bound with one of the threads from the COM+ STA thread pool.



CAUSE
When the object from Component1 is instantiated from an STA, the apartment of the caller's thread is only checked if it is in the COM+ STA thread pool. If possible, create all COM+ objects that live on STA threads in the caller's thread. This bug violates this COM+ rule.



RESOLUTION
To resolve this problem, obtain the latest service pack for Windows 2000. For additional information, click the following article number to view the article in the Microsoft Knowledge Base:

260910 How to Obtain the Latest Windows 2000 Service Pack

This fix is included with the fixes that are described in the following Microsoft Knowledge Base article:

299407 INFO: Post Windows 2000 Service Pack 2 COM+ Rollup Hotfix 13 Is Available



STATUS
Microsoft has confirmed that this is a problem in the Microsoft products that are listed at the beginning of this article. This problem was first corrected in Windows 2000 Service Pack 3.



Steps to Reproduce Behavior

 * 1) Call the CoInitialize function on your main thread into the STA.
 * 2) Call the CoCreate function on a configured STA component. Note that CoCreate does not run on the thread that you created.

Additional query words: kbIISCom

Keywords: kbbug kbfix kbwin2000presp3fix kbwin2000sp3fix KB298127

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.