Gejala

Setelah Anda menginstal 2018 Juli .NET Framework keamanan dan kualitas pembatalan yang berlaku untuk .NET Framework 4.6, 4.6.1, 4.6.2, 4,7, 4.7.1 dan 4.7.2 di Windows 7 Paket Layanan 1 (SP1), Windows Server 2008 R2 SP1 atau Windows Server 2008 SP2, Anda melihat galat pada .NET Kerangka aplikasi yang memenuhi kriteria berikut ini:

  • Aplikasi menggunakan contoh kelas System.Transaction.TransactionScope di mana aliran transaksi diaktifkan dengan melewati TransactionScopeAsyncFlowOption.Enabled ke konstruktor.

  • Aplikasi membuat satu atau lebih panggilan jarak jauh sementara satu lingkup transaksi tersebut aktif. Dalam hal ini, panggilan jarak jauh adalah panggilan yang perjalanan melalui proksi transparan sebelum mencapai objek server. Contoh panggilan jarak jauh termasuk panggilan ke domain aplikasi lainnya dan panggilan dibuat melalui saluran jarak jauh, seperti saluran klien yang ditetapkan di ruang nama System.Runtime.Remoting.Channels .

  • Setelah panggilan jarak jauh, System.Transactions.Transaction.Current mengembalikan nilai null bukannya nilai yang dikembalikan sebelum panggilan jarak jauh.

Penyelesaian Masalah

Untuk mengatasi masalah ini, cobalah salah satu dari metode berikut ini:

  • Untuk setiap lingkup transaksi yang memungkinkan aliran transaksi, mengubah aplikasi untuk memastikan bahwa panggilan jarak jauh tidak terjadi di mana saja di dalam kode yang dijalankan ketika lingkup transaksi aktif. Ketika Anda menentukan apakah lingkup transaksi yang berisi panggilan jarak jauh, pertimbangkan pedoman berikut:

    • Panggilan ke metode statis tidak pernah panggilan jarak jauh.

    • Untuk panggilan ke contoh metode pada objek target, panggilan jauh hanya jika objek target proksi transparan.

    • Untuk panggilan ke konstruktor, panggilan jauh hanya jika objek dibangun proksi transparan.

    CatatanAnda selalu dapat menggunakan metode System.Runtime.Remoting.RemotingServices.IsTransparentProxy untuk memeriksa apakah objek proksi transparan.

  • Nonaktifkan aliran transaksi dengan menghapus TransactionScopeAsyncFlowOption.Enabled konstruktor argumen. 

    Peringatan

    Pemecahan masalah ini mungkin menyebabkan kesalahan lain jika operasi "menunggu" eksekusi sementara lingkup transaksi aktif.

  • Properti Transaction.Current tidak secara otomatis serial untuk panggilan jarak jauh. Harus disampaikan sebagai parameter. Jika panggilan jarak jauh tidak lulus transaksi sebagai parameter dan tidak membuat panggilan balik klien selama panggilan jarak jauh, Anda dapat membuat panggilan jarak jauh di dalam objek TransactionScope baru yang menggunakan TransactionScopeOptions.Suppress opsi. Dalam hal ini menekan transaksi lingkup, properti Transaction.Current memiliki nilai nol.

Status

Kami menyadari masalah ini dan sedang bekerja pada resolusi.

Perlu bantuan lainnya?

Kembangkan keterampilan Anda
Jelajahi pelatihan
Dapatkan fitur baru terlebih dahulu
Gabung Microsoft Insider

Apakah informasi ini bermanfaat?

Seberapa puaskah Anda dengan kualitas terjemahannya?
Apa yang memengaruhi pengalaman Anda?

Terima kasih atas umpan balik Anda!

×