Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
För att undvika resursläckor bör koden anropa AnonymousPipeServerStream.DisposeLocalCopyOfClientHandle() metoden efter att klienthandtaget har överförts till den underordnade processen. Beteendet AnonymousPipeServerStream.Dispose för har förbättrats för att minska risken för liknande läckor för användare som inte anropar DisposeLocalCopyOfClientHandle().
Tidigare beteende
Tidigare var klienthandtaget som ägs av instansen AnonymousPipeServerStream inte bortskaffat av AnonymousPipeServerStream.Dispose om inte handtaget inte exponerades alls.
Nytt beteende
Från och med .NET 8 förstörs AnonymousPipeServerStream.Dispose klienthandtaget som ägs av en server som har skapats för kommunikation utanför processen om det inte exponeras med hjälp av egenskapen AnonymousPipeServerStream.ClientSafePipeHandle. (Du skapar en server för utanför-process kommunikation genom att skicka HandleInheritability.Inheritable till konstruktorn AnonymousPipeServerStream(PipeDirection, HandleInheritability).)
Version lanserad
Förhandsversion 1 av .NET 8
Typ av brytande ändring
Den här ändringen är en beteendeförändring.
Orsak till ändring
Den här ändringen infördes för att undvika en vanlig resursläcka.
Rekommenderad åtgärd
Om en server har skapats för inaktiv kommunikation ska du inte återanvända klienthandtaget som exponeras som en sträng via GetClientHandleAsString() metoden när serverinstansen har tagits bort.
Berörda API:er
-
System.IO.Pipes.AnonymousPipeServerStream (närmare bestämt
AnonymousPipeServerStream.Dispose())