Перейти к основному контенту
Поддержка
Войдите с помощью учетной записи Майкрософт
Войдите или создайте учетную запись.
Здравствуйте,
Выберите другую учетную запись.
У вас несколько учетных записей
Выберите учетную запись, с помощью которой нужно войти.

Проблема

После установки июля 2018 безопасности платформа.NET Framework и качество накопительные пакеты обновления, относящиеся к платформа.NET Framework 4.6 4.6.1, 4.6.2, 4.7, 4.7.1 и 4.7.2 в Пакет обновления 1 (SP1) для Windows 7, Windows Server 2008 R2 с пакетом обновления 1 или Windows Server 2008 SP2 можно заметить ошибки в .NET Приложение Framework, отвечающий следующим условиям:

  • Приложение использует экземпляры класса System.Transaction.TransactionScope , в котором поток транзакций включается, передав конструктору TransactionScopeAsyncFlowOption.Enabled .

  • Приложение делает один или несколько удаленных вызовов во время одной из этих областей транзакция активна. В этом случае удаленный вызов является любой вызов, который передается через прозрачный прокси достигает объект сервера. Удаленные вызовы примеры вызовов на другие домены приложения и вызовы через каналы удаленного взаимодействия, например, клиентских каналов, которые определены в пространстве имен System.Runtime.Remoting.Channels .

  • После удаленного вызова возвращает нулевое значение вместо значения, который был возвращен перед удаленным вызовом System.Transactions.Transaction.Current.

Обходной путь

Чтобы обойти эту проблему, выполните одно из следующих методов:

  • Для каждой области транзакции, включает поток транзакций измените приложение, чтобы убедиться в том, что нет удаленных вызовов случиться в любом месте в коде, который выполняется при активном области транзакции. При определении области транзакций содержит ли все удаленные вызовы, Рассмотрите следующие рекомендации:

    • Вызов статического метода не удаленного вызова.

    • Для вызова метода экземпляра для целевого объекта вызов удаленной только в том случае, если целевой объект является прозрачный прокси.

    • Для вызова конструктора вызов является удаленным, только если созданный объект прозрачный прокси.

    Примечание.Всегда можно использовать метод System.Runtime.Remoting.RemotingServices.IsTransparentProxy для проверки, является ли объект прозрачным прокси.

  • Отключите поток транзакций, удалив аргумента конструктора TransactionScopeAsyncFlowOption.Enabled

    Предупреждение.

    Этот метод может вызвать другие ошибки, если какие-либо операции «ожидания» выполнять во время активной области транзакции.

  • Свойство Transaction.Current не сериализуется автоматически для удаленного вызова. Он должен быть передан как параметр. Если удаленный вызов транзакции не передавать как параметр и не выполняет обратный вызов клиента во время удаленного вызова, можно создать удаленный вызов внутри объекта TransactionScope , использующий TransactionScopeOptions.Suppress параметр. Внутри это отключить область транзакции, свойство Transaction.Current имеет значение null.

Статус

Мы осведомлены об этой проблеме и в настоящее время занимается разрешением.

Нужна дополнительная помощь?

Нужны дополнительные параметры?

Изучите преимущества подписки, просмотрите учебные курсы, узнайте, как защитить свое устройство и т. д.

В сообществах можно задавать вопросы и отвечать на них, отправлять отзывы и консультироваться с экспертами разных профилей.

Были ли сведения полезными?

Насколько вы удовлетворены качеством перевода?
Что повлияло на вашу оценку?
После нажатия кнопки "Отправить" ваш отзыв будет использован для улучшения продуктов и служб Майкрософт. Эти данные будут доступны для сбора ИТ-администратору. Заявление о конфиденциальности.

Спасибо за ваш отзыв!

×