Bỏ qua để tới nội dung chính
Đăng nhập với Microsoft
Đăng nhập hoặc tạo một tài khoản.
Xin chào,
Chọn một tài khoản khác.
Bạn có nhiều tài khoản
Chọn tài khoản bạn muốn đăng nhập.

Triệu chứng

Sau khi bạn cài đặt ngày 2018 .NET Framework bảo mật và bản chất lượng áp dụng cho .NET Framework 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1 và 4.7.2 trên Windows 7 gói dịch vụ 1 (SP1), Windows Server 2008 R2 SP1 hoặc Windows Server 2008 SP2, bạn thấy lỗi trong một .NET Khung ứng dụng đáp ứng các tiêu chí sau:

  • Ứng dụng sử dụng các phiên bản của System.Transaction.TransactionScope dòng giao dịch được kích hoạt bằng cách đi qua TransactionScopeAsyncFlowOption.Enabled để xây dựng.

  • Ứng dụng làm cho một hoặc nhiều cuộc gọi từ xa trong khi một trong các phạm vi giao dịch được kích hoạt. Trong trường hợp này, một cuộc gọi từ xa là bất kỳ cuộc gọi đi qua một proxy minh bạch trước khi đối tượng máy chủ. Ví dụ về các cuộc gọi từ xa bao gồm các cuộc gọi lên các ứng dụng và gọi qua kênh remoting, chẳng hạn như các kênh khách hàng được xác định trong không gian tên System.Runtime.Remoting.Channels .

  • Cuộc gọi từ xa, System.Transactions.Transaction.Current trả lại giá trị không thay vì giá trị đã được trả lại trước khi cuộc gọi từ xa.

Giải pháp

Để khắc phục sự cố này, hãy thử những phương pháp sau:

  • Đối với mỗi phạm vi giao dịch cho phép lưu lượng giao dịch, thay đổi các ứng dụng để đảm bảo rằng các cuộc gọi từ xa không xảy ra ở bất cứ đâu trong mã khi phạm vi giao dịch được kích hoạt. Khi bạn xác định một phạm vi giao dịch có bất kỳ cuộc gọi từ xa, xem xét các hướng dẫn sau:

    • Cuộc gọi tới phương pháp tĩnh không bao giờ là một cuộc gọi từ xa.

    • Một cuộc gọi là phương pháp thể hiện một đối tượng mục tiêu, gọi là từ xa chỉ khi các đối tượng mục tiêu là một proxy minh bạch.

    • Một cuộc gọi để xây dựng một, gọi là từ xa chỉ khi các đối tượng được xây dựng một proxy minh bạch.

    Lưu ýBạn luôn có thể sử dụng phương pháp System.Runtime.Remoting.RemotingServices.IsTransparentProxy để kiểm tra xem đối tượng trong suốt proxy.

  • Vô hiệu hoá giao dịch dòng bằng cách loại bỏ các tham số xây dựng TransactionScopeAsyncFlowOption.Enabled

    Cảnh báo

    Giải pháp này có thể gây ra lỗi khác nếu thực hiện bất kỳ hoạt động "chờ" khi phạm vi giao dịch được kích hoạt.

  • Thuộc tính Transaction.Current không được tự động trên cuộc gọi từ xa. Nó phải được chuyển như một tham số. Nếu cuộc gọi từ xa qua giao dịch như một tham số và không gọi lại cho khách hàng trong cuộc gọi từ xa, bạn có thể tạo cuộc gọi từ xa trong một đối tượng TransactionScope mới sử dụng TransactionScopeOptions.Suppress Tuỳ chọn. Trong này ngăn chặn phạm vi giao dịch, nhà Transaction.Current có giá trị không.

Trạng thái

Chúng tôi biết vấn đề này và hiện đang làm việc trên một giải pháp.

Bạn cần thêm trợ giúp?

Bạn muốn xem các tùy chọn khác?

Khám phá các lợi ích của gói đăng ký, xem qua các khóa đào tạo, tìm hiểu cách bảo mật thiết bị của bạn và hơn thế nữa.

Cộng đồng giúp bạn đặt và trả lời các câu hỏi, cung cấp phản hồi và lắng nghe ý kiến từ các chuyên gia có kiến thức phong phú.

Thông tin này có hữu ích không?

Bạn hài lòng đến đâu với chất lượng dịch thuật?
Điều gì ảnh hưởng đến trải nghiệm của bạn?
Khi nhấn gửi, phản hồi của bạn sẽ được sử dụng để cải thiện các sản phẩm và dịch vụ của Microsoft. Người quản trị CNTT của bạn sẽ có thể thu thập dữ liệu này. Điều khoản về quyền riêng tư.

Cảm ơn phản hồi của bạn!

×