Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Aby uniknąć wycieków zasobów, kod powinien wywołać metodę AnonymousPipeServerStream.DisposeLocalCopyOfClientHandle() po przekazaniu dojścia klienta do procesu podrzędnego. Zachowanie AnonymousPipeServerStream.Dispose zostało ulepszone, aby zmniejszyć prawdopodobieństwo podobnych przecieków dla użytkowników, którzy nie wywołują DisposeLocalCopyOfClientHandle().
Poprzednie zachowanie
Wcześniej dojście klienta należące do AnonymousPipeServerStream wystąpienia nie zostało usunięte AnonymousPipeServerStream.Dispose , chyba że dojście nie zostało w ogóle ujawnione.
Nowe zachowanie
Począwszy od platformy .NET 8, dojście klienta należące do serwera utworzonego do komunikacji międzyprocesowej jest usuwane przez AnonymousPipeServerStream.Dispose , jeśli nie jest udostępnione za pomocą właściwości AnonymousPipeServerStream.ClientSafePipeHandle. (Serwer na potrzeby komunikacji poza proc tworzy się, przekazując HandleInheritability.Inheritable do konstruktora AnonymousPipeServerStream(PipeDirection, HandleInheritability) ).
Wersja wprowadzona
.NET 8 (wersja zapoznawcza 1)
Typ zmiany przełamującej
Ta zmiana jest zmianą behawioralną.
Przyczyna zmiany
Wprowadzono tę zmianę, aby uniknąć typowego wycieku zasobów.
Zalecana akcja
Jeśli serwer został utworzony na potrzeby komunikacji międzyprocesowej, nie używaj ponownie dojścia klienta, który jest uwidoczniony jako ciąg znaków za pomocą metody GetClientHandleAsString() po usunięciu wystąpienia serwera.
Interfejsy API, których dotyczy problem
-
System.IO.Pipes.AnonymousPipeServerStream (w szczególności
AnonymousPipeServerStream.Dispose())