Megosztás a következőn keresztül:


disconnectedContext MDA

Feljegyzés

Ez a cikk a .NET-keretrendszer vonatkozik. Ez nem vonatkozik a .NET újabb implementációira, beleértve a .NET 6-os és újabb verzióit.

A disconnectedContext felügyelt hibakeresési segéd (MDA) akkor aktiválódik, amikor a CLR egy COM-objektumra vonatkozó kérés kiszolgálása közben megpróbál áttérni egy leválasztott lakásba vagy környezetbe.

Hibajelenségek

A Runtime Callable Burkolón (RCW) indított hívások az aktuális lakás vagy környezet mögöttes COM-összetevőjéhez lesznek kézbesítve, nem pedig az, amelyben léteznek. Ez sérülést és adatvesztést okozhat, ha a COM-összetevő nem többszálú, mint az egyszálas lakás (STA) összetevői esetében. Másik lehetőségként, ha az RCW maga proxy, a hívás egy RPC_E_WRONG_THREAD HRESULT-jával történő dobását COMException eredményezheti.

Ok

Az OLE lakás vagy környezet leállt, amikor a CLR megpróbál áttérni. Ezt a leggyakrabban az okozza, hogy a STA-lakások leállnak, mielőtt a lakás tulajdonában lévő összes COM-összetevőt teljesen felszabadították Volna ez az RCW felhasználói kódjának explicit hívása vagy a CLR maga módosítja a COM-összetevőt, például amikor a CLR felszabadítja a COM-összetevőt, amikor a kapcsolódó RCW-t összegyűjtötték.

Resolution (Osztás)

A probléma elkerülése érdekében győződjön meg arról, hogy az STA-t birtokláló szál nem fejeződik be, mielőtt az alkalmazás befejeződött a lakásban élő összes objektummal. Ugyanez vonatkozik a környezetekre is; győződjön meg arról, hogy a környezetek nem lesznek leállítva, mielőtt az alkalmazás teljesen befejeződött a környezetben élő COM-összetevőkkel.

Effektus a futtatókörnyezetre

Ez az MDA nincs hatással a CLR-re. Csak a leválasztott környezettel kapcsolatos adatokat jelenti.

Hozam

A leválasztott lakás vagy környezet környezeti cookie-jának jelentése.

Konfiguráció

<mdaConfig>
  <assistants>
    <disconnectedContext />
  </assistants>
</mdaConfig>

Lásd még