Przejdź do głównej zawartości
Pomoc techniczna
Zaloguj się przy użyciu konta Microsoft
Zaloguj się lub utwórz konto.
Witaj,
Wybierz inne konto.
Masz wiele kont
Wybierz konto, za pomocą którego chcesz się zalogować.

Objawy

Po zainstalowaniu 2018 lipca.NET Framework bezpieczeństwa i jakości pakietów zbiorczych aktualizacji dla.NET Framework 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1 i 4.7.2 w dodatku Service Pack 1 (SP1) dla systemu Windows 7, Windows Server 2008 R2 z dodatkiem SP1 lub Windows Server 2008 z dodatkiem SP2, można zauważyć błędy w .NET Ramy aplikacji, która spełnia następujące kryteria:

  • Aplikacja korzysta z instancji klasy System.Transaction.TransactionScope , w którym włączono przepływu transakcji przez przekazanie do konstruktora TransactionScopeAsyncFlowOption.Enabled .

  • Aplikacja sprawia, że jedno lub kilka wywołań zdalnego podczas jednego z tych zakresów transakcji jest aktywny. W takim przypadku zdalne wywołanie jest każde wywołanie, które przechodzi przez przezroczysty serwer proxy, zanim dotrze do obiektu serwera. Przykładami wywołania zdalne wywołania do innych domen aplikacji i połączeń wykonywanych za pośrednictwem kanałów komunikacji zdalnej, takich jak kanały klienta, które są zdefiniowane w przestrzeni nazw System.Runtime.Remoting.Channels .

  • Po wywołaniu zdalnym TRANSACTION.Current zwraca wartość null zamiast wartości, który został zwrócony przed zdalne wywołanie.

Obejście

Aby obejść ten problem, spróbuj wykonać jedną z następujących metod:

  • Dla każdego zakresu transakcji, który umożliwia przepływu transakcji zmienić aplikację, aby upewnić się, że nie wywołania zdalne gdziekolwiek występują w kodzie, który jest uruchamiany, gdy zakres transakcji jest aktywny. Przy określaniu czy zakres transakcji zawiera wszelkie wywołania zdalne, należy wziąć pod uwagę następujące wskazówki:

    • Wywołanie statycznej metody nigdy nie jest zdalne wywołanie.

    • Na wywołanie do metody wystąpienia na obiekcie docelowym wywołanie jest zdalny tylko wtedy, gdy obiekt docelowy jest przezroczysty serwer proxy.

    • Dla wywołania konstruktora wywołanie jest zdalny tylko wtedy, gdy obiekt konstruowanej jest przezroczysty serwer proxy.

    Uwaga System.Runtime.Remoting.RemotingServices.IsTransparentProxy metoda zawsze służy do sprawdzania, czy obiekt jest przezroczysty serwer proxy.

  • Wyłączenie przepływu transakcji przez usunięcie argument konstruktora TransactionScopeAsyncFlowOption.Enabled

    Ostrzeżenie

    Ta metoda obejścia problemu jest może spowodować inne błędy, jeśli wszystkie operacje "czekają na" wykonać, gdy transakcja jest aktywny.

  • Właściwość Transaction.Current nie jest automatycznie seryjny do połączenia zdalnego. Musi być przekazany jako parametr. Jeśli zdalne wywołanie nie przekazać transakcji jako parametr i nie powoduje wywołanie zwrotne do klienta podczas połączenia zdalnego, można utworzyć zdalne wywołanie wewnątrz obiektu nowego elementu TransactionScope korzystającej z TransactionScopeOptions.Suppress Opcja. Wewnątrz to Pomiń zakres transakcji, właściwość Transaction.Current ma wartość null.

Stan

Jesteśmy świadomi tego problemu i aktualnie pracuje rozdzielczość.

Potrzebujesz dalszej pomocy?

Chcesz uzyskać więcej opcji?

Poznaj korzyści z subskrypcji, przeglądaj kursy szkoleniowe, dowiedz się, jak zabezpieczyć urządzenie i nie tylko.

Społeczności pomagają zadawać i odpowiadać na pytania, przekazywać opinie i słuchać ekspertów z bogatą wiedzą.

Czy te informacje były pomocne?

Jaka jest jakość języka?
Co wpłynęło na Twoje wrażenia?
Jeśli naciśniesz pozycję „Wyślij”, Twoja opinia zostanie użyta do ulepszania produktów i usług firmy Microsoft. Twój administrator IT będzie mógł gromadzić te dane. Oświadczenie o ochronie prywatności.

Dziękujemy za opinię!

×