Applies To.NET Framework 4.7.2 .NET Framework 4.7.1 .NET Framework 4.7 .NET Framework 4.6 .NET Framework 4.6.1 .NET Framework 4.6.2

Požymiai

Kai įdiegiate 2018 m. liepos .NET Framework saugos ir kokybės naujinimų paketus, kurie yra susiję su .NET Framework 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1 ir 4.7.2 "Windows 7 1 pakeitimų paketą (SP1), Windows Server 2008 R2 SP1 arba" Windows Server 2008 SP2, pastebite, kad klaidų, su .NET Framework programą, kuri atitinka šiuos kriterijus:

  • Programa naudoja System.Transaction.TransactionScope klasės, kai įjungta operacijų srauto perduoti TransactionScopeAsyncFlowOption.Enabled konstruktorius egzempliorius.

  • Programa atlieka vieną arba kelis nuotolinio skambučių nors vieną iš šių operacijų aprėptis yra aktyvus. Tokiu atveju nuotolinio skambinimo yra bet skambinti, kad keliauja skaidraus tarpinį serverį, prieš jam pasiekiant serverio objektą. Nuotolinis skambučių pavyzdžiai kvietimus į kitų taikomųjų programų domenai ir skambučių nuotolinis valdymas kanalais, pvz., kliento kanalus, kurie nurodomi System.Runtime.Remoting.Channels vardų sritys.

  • Nuotolinio ryšio, System.Transactions.Transaction.Current pateikia nulis, grąžinta prieš nuotolinio skambinimo vietoje.

Sprendimas

Norėdami išspręsti šią problemą, atlikite bet kurį iš šių būdų:

  • Už kiekvieną operacijų sritį, kuri leidžia operacijų srauto, pakeisti programą, įsitikinkite, kad nėra nuotolinio skambučių atsirasti bet kurioje kodą, kuris veikia, o operacijos yra aktyvus. Kai nustatysite, ar operacijų apimtis yra nuotolinio raginimų, kuriuos reikia atsižvelgti šiomis rekomendacijomis:

    • Statinis metodas skambučio nėra nuotolinio skambinti.

    • Skambučio į kitą egzempliorių būdą dėl tikslinių objektas, yra nuotolinio tik tuomet, jei paskirties objekto skaidraus tarpinį serverį.

    • Skambučio į konstruktorius, yra nuotolinio tik tuomet, jei apskaičiuota objekto skaidraus tarpinį serverį.

    Pastaba. System.Runtime.Remoting.RemotingServices.IsTransparentProxy būdas visada galite naudotis Norėdami patikrinti, ar objektas yra skaidrus tarpinį serverį.

  • Išjunkite operacijų srauto pašalinant TransactionScopeAsyncFlowOption.Enabled konstruktorius argumentas. 

    Įspėjimas

    Šios problemos sprendimas yra gali sukelti kitos klaidos, jei jokių "laukti" operacijų vykdyti, o operacijos yra aktyvus.

  • Transaction.Current ypatybės nėra automatiškai paverčiamas į nuotolinio skambinti. Jis turi būti perduodamas kaip parametras. Jei nuotolinio skambinimo nepereina operacija kaip parametras ir nereiškia, kad paskambins į kliento nuotolinio ryšio metu, galite sukurti nuotolinio skambinimo viduje naują operacijų tikrinimo apimtyje objektą, kuris naudojamas TransactionScopeOptions.Suppress parinktis. Viduje tai nerodyti operacijų sritį, Transaction.Current ypatybės reikšmė yra nulinė.

Būsena

Mes žinome apie šią problemą ir šiuo metu dirba sprendimas.

Reikia daugiau pagalbos?

Norite daugiau parinkčių?

Sužinokite apie prenumeratos pranašumus, peržiūrėkite mokymo kursus, sužinokite, kaip apsaugoti savo įrenginį ir kt.

Bendruomenės padeda užduoti klausimus ir į juos atsakyti, pateikti atsiliepimų ir išgirsti iš ekspertų, turinčių daug žinių.