Bei Microsoft anmelden
Melden Sie sich an, oder erstellen Sie ein Konto.
Hallo,
Wählen Sie ein anderes Konto aus.
Sie haben mehrere Konten.
Wählen Sie das Konto aus, mit dem Sie sich anmelden möchten.

Problembeschreibung

Nachdem Sie die Sicherheits- und Qualitätsrollups vom Juli 2018 für .NET Framework installiert haben, die .NET Framework 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, und 4.7.2 unter Windows 7 Service Pack 1 (SP1), Windows Server 2008 R2 SP1 oder Windows Server 2008 SP2 betreffen, treten in einer .NET Framework-Anwendung, die die folgenden Kriterien erfüllt, Fehler auf:

  • Die Anwendung verwendet Instanzen der System.Transaction.TransactionScope-Klasse, für die der Transaktionsfluss durch Übergabe von TransactionScopeAsyncFlowOption.Enabled an den Konstruktor aktiviert ist.

  • Die Anwendung führt einen oder mehrere Remoteaufrufe durch, während einer dieser Transaktionsbereiche aktiv ist. In diesem Fall ist ein Remoteaufruf jeder Aufruf, der über einen transparenten Proxy weitergeleitet wird, bevor er das Serverobjekt erreicht. Beispiele für Remoteaufrufe sind Aufrufe anderer Anwendungsdomänen und über Remotingkanäle durchgeführte Aufrufe, wie beispielsweise die in den System.Runtime.Remoting.Channels-Namespaces definierten Clientkanäle.

  • Nach dem Remoteaufruf gibt System.Transactions.Transaction.Current einen NULL-Wert anstelle des vor dem Remoteaufruf zurückgegebenen Werts zurück.

Problemumgehung

Wenden Sie eine der folgenden Methoden an, um dieses Problem zu umgehen:

  • Ändern Sie für jeden Transaktionsbereich, der den Transaktionsfluss aktiviert, die Anwendung, um sicherzustellen, dass nirgendwo im Code, der bei aktivem Transaktionsbereich ausgeführt wird, Remoteaufrufe auftreten. Beachten Sie beim Ermitteln, ob ein Transaktionsbereich Remoteaufrufe enthält, die folgenden Richtlinien:

    • Ein Aufruf einer statischen Methode ist in keinem Fall ein Remoteaufruf.

    • Für einen Aufruf einer Instanzenmethode in einem Zielobjekt handelt es sich nur dann um einen Remoteaufruf, wenn das Zielobjekt ein transparenter Proxy ist.

    • Für einen Aufruf eines Konstruktors handelt es sich nur dann um einen Remoteaufruf, wenn das erstellte Objekt ein transparenter Proxy ist.

    Hinweis Mit der System.Runtime.Remoting.RemotingServices.IsTransparentProxy-Methode können Sie jederzeit überprüfen, ob es sich bei einem Objekt um einen transparenten Proxy handelt.

  • Deaktivieren Sie den Transaktionsfluss, indem Sie das TransactionScopeAsyncFlowOption.Enabled-Konstruktorargument entfernen. 

    Warnung

    Diese Problemumgehung verursacht wahrscheinlich andere Fehler, wenn „await“-Vorgänge bei aktivem Transaktionsbereich ausgeführt werden.

  • Die Transaction.Current-Eigenschaft wird nicht automatisch für den Remoteaufruf serialisiert. Sie muss als Parameter übergeben werden. Wenn der Remoteaufruf die Transaktion nicht als Parameter übergibt und während des Remoteaufrufs keinen Rückruf zum Client ausführt, können Sie den Remoteaufruf nicht im Rahmen eines neuen TransactionScope-Objekts erstellen das die Option TransactionScopeOptions.Suppress verwendet. In diesem unterdrückten Transaktionsbereich weist die Transaction.Current-Eigenschaft einen NULL-Wert auf.

Status

Wir sind uns dieses Problems bewusst und arbeiten aktuell an einer Lösung.

Benötigen Sie weitere Hilfe?

Möchten Sie weitere Optionen?

Erkunden Sie die Abonnementvorteile, durchsuchen Sie Trainingskurse, erfahren Sie, wie Sie Ihr Gerät schützen und vieles mehr.

In den Communities können Sie Fragen stellen und beantworten, Feedback geben und von Experten mit umfassendem Wissen hören.

War diese Information hilfreich?

Wie zufrieden sind Sie mit der Sprachqualität?
Was hat Ihre Erfahrung beeinflusst?
Wenn Sie auf "Absenden" klicken, wird Ihr Feedback zur Verbesserung von Produkten und Diensten von Microsoft verwendet. Ihr IT-Administrator kann diese Daten sammeln. Datenschutzbestimmungen.

Vielen Dank für Ihr Feedback!

×