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


Hibakezelés (RPC)

A szinkron RPC-ben az ügyfél egy távoli hívást kezdeményez, amely sikeres vagy sikertelen kóddal tér vissza. Az aszinkron RPC több lehetőséget biztosít a sikertelen hívásra, és ezeket a hibákat a rendszer eltérően kezeli attól függően, hogy hol és mikor fordulnak elő. Az alábbi táblázat a hívások sikertelenségének módjait és kezelésének módját ismerteti.

Ügyféloldali törlés

Hibajelenség Razzia
Az ügyfél kivételt kap, amikor meghívja a távoli eljárást. Nincs szükség RPC API-hívásokra. Az összes RPC-állapotot megtisztítottuk.
Az ügyfél teljes körű hívást kap, de amikor meghívja RpcAsyncCompleteCall, hibaüzenetet kap. Nincs szükség RPC API-hívásokra. Az összes RPC-állapotot megtisztítottuk.
Az ügyfél nem megszakított vagy megszakított lemondással kapcsolatos problémái. Az ügyfélnek várnia kell az értesítésre, és meg kell hívnia RpcAsyncCompleteCall, amikor az értesítés megérkezik.

 

A kiszolgálóoldali törlésnél a kulcsfogalom az átadási pont. Az aszinkron hívás kiszolgálóoldali feldolgozása során általában a hívást fogadó szálon (más néven a kézbesítőszálon) végeznek feldolgozást, majd szükség esetén a diszpécserszál elegendő állapotot helyez egy memóriablokkba, és egy másik szálat (más néven feldolgozó szálat) jelez a hívás feldolgozásának folytatásához. Az a pillanat, amikor a diszpécserszál sikeresen jelzi, hogy a feldolgozó szálat kézhezadási pontnak nevezik.

Kiszolgálóoldali karbantartás

Hiba történt Razzia
Az átadási pont előtt. Kivételt dobjon ki. Nincs szükség az RpcAsyncCompleteCallhívására.
Az átadási pont után. Hívja meg RpcAsyncAbortCall, vagy ha a hiba nem végzetes, és az eredmények továbbra is visszaadhatók az ügyfélnek, RpcAsyncCompleteCall. Ha a RpcAsyncCompleteCall függvényhívás meghiúsul, az RPC-futtatókörnyezet felszabadítja a paramétereket. A felhasználó nem férhet hozzá ezekhez a paraméterekhez. A diszpécserszál nem végezhet olyan jelentős feldolgozást, amely a leosztási pont után meghiúsulhat, mert már nem tudja biztonságosan megszakítania a hívást. Pontosabban, nem szabad kivételt kivenni a leosztási pont után, vagy a kiszolgáló összeomlhat.

 

Speciális hibakezelési esetek csövekhez

A csövek használatakor speciális esetek vannak a hibák kezelésére. Az alábbi lista ismerteti a hiba forrását és a hiba kezelését.

A hiba forrása A kezelés menete
Ügyfélhívások leküldése és a hívás meghiúsul. Nincs szükség RPC API-hívásokra. Az összes RPC-állapotot megtisztítottuk.
Ügyfélhívások RpcAsyncCompleteCall, mielőtt acsövekben lévőkiürítené. A hívás a megfelelő csőkitöltési hibakóddal meghiúsul.
Az ügyfélhívások lekérése és a hívás meghiúsul. Nincs szükség RPC API-hívásokra. Az összes RPC-állapotot megtisztítottuk.
Az ügyfél vagy a kiszolgáló nem megfelelő sorrendben hívja meg a leküldést vagy a lekérést. A futási idő a csőkitöltési hiba állapotát adja vissza.
A kiszolgáló leküldéses vagy lekéréses hívásokat indít, és a hívás meghiúsul. A leküldés egy hibakódot ad vissza. Nincs szükség az RpcAsyncCompleteCallhívására.
A kiszolgáló meghívja RpcAsyncCompleteCall a csövek ürítése előtt. A csőhívás egy csőkitöltési hibaállapotot ad vissza.
A küldés után a fogadási művelet meghiúsul. Amikor a kiszolgáló legközelebb meghívja a lekérést a csőadatok fogadásához, a rendszer hibát ad vissza.