Logga in med Microsoft
Logga in eller skapa ett konto.
Hej,
Välj ett annat konto.
Du har flera konton
Välj det konto som du vill logga in med.

Symptom

När du har installerat juli 2018.NET Framework säkerhet och kvalitet uppdateringar som gäller för.NET Framework 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1 eller 4.7.2 på Windows 7 Service Pack 1 (SP1), Windows Server 2008 R2 SP1 eller Windows Server 2008 SP2 du upptäcker fel i en .NET Framework-program som uppfyller följande kriterier:

  • Programmet använder förekomster av klassen System.Transaction.TransactionScope som transaktionsflöde har aktiverats genom att skicka TransactionScopeAsyncFlowOption.Enabled till konstruktorn.

  • Ett program anropar en eller flera fjärrdatorer när något av dessa scope för transaktionen är aktiv. I det här fallet är ett fjärranrop alla anrop som passerar genom en transparent proxy innan den når serverobjektet. Exempel på fjärranrop är anrop till andra programdomäner och samtal via fjärrkommunikation kanaler som klienten kanaler som definieras i System.Runtime.Remoting.Channels -namnområden.

  • Efter fjärranrop, System.Transactions.Transaction.Current returnerar ett null-värde i stället för det värde som returnerades innan fjärranrop.

Lösning

Undvik det här problemet genom att prova någon av följande metoder:

  • Varje transaktions-scope som gör transaktionsflöde, ändra i programmet och kontrollera att inga fjärranrop uppstår någonstans i koden som körs medan transaktions-scope är aktivt. När du bestämmer om ett transaktions-scope innehåller alla fjärranrop överväga följande riktlinjer:

    • Ett anrop till en statisk metod är aldrig ett fjärranrop.

    • Samtalet är ytterst endast om målobjektet är en transparent proxy för ett anrop till en förekomstmetod på ett målobjekt.

    • Samtalet är ytterst endast om konstruerade objektet är en transparent proxy för ett anrop till en konstruktor.

    Obs! Du kan alltid använda metoden System.Runtime.Remoting.RemotingServices.IsTransparentProxy för att kontrollera om ett objekt är en transparent proxy.

  • Inaktivera transaktionsflöde genom att ta bort argumentet TransactionScopeAsyncFlowOption.Enabled konstruktör. 

    Varning

    Den här lösningen kan medföra andra fel om någon ”väntar” körs medan transaktions-scope är aktiv.

  • Egenskapen Transaction.Current serialiseras inte automatiskt till fjärr-anrop. Det måste skickas som en parameter. Om anropet remote inte klarar transaktionen som en parameter och inte gör ett återanrop till klienten under remote samtal, kan du skapa fjärranrop inuti ett nytt objekt för TransactionScope som använder TransactionScopeOptions.Suppress alternativet. Inuti detta utelämna transaktions-scope, egenskapen Transaction.Current har ett null-värde.

Status

Vi är medvetna om problemet och arbetar på en lösning.

Behöver du mer hjälp?

Vill du ha fler alternativ?

Utforska prenumerationsförmåner, bläddra bland utbildningskurser, lär dig hur du skyddar din enhet med mera.

Communities hjälper dig att ställa och svara på frågor, ge feedback och få råd från experter med rika kunskaper.

Hade du nytta av den här informationen?

Hur nöjd är du med språkkvaliteten?
Vad påverkade din upplevelse?
Genom att trycka på skicka, kommer din feedback att användas för att förbättra Microsofts produkter och tjänster. IT-administratören kan samla in denna data. Sekretesspolicy.

Tack för din feedback!

×