Tôi có một tự tổ chức dịch vụ WCF sử dụng net tcp duplex callbackWCF callback net tcp duplex chỉ có 1 cách faulted
về phía khách hàng, tôi nghe về sự kiện faulted trên Channel và ChennelFactory. khi kênh bị lỗi, khách hàng sẽ tạo lại kênh và đăng ký lại.
ở phía máy chủ, tôi lưu trữ kênh gọi lại và lưu trữ tham chiếu của Kênh bằng cách gọi OperationContext.Current.Channel
để tôi có thể nghe sự kiện bị lỗi và đã đóng trên kênh này. Khi bị lỗi, máy chủ sẽ xóa người đăng ký đó.
Điều này làm việc hầu hết thời gian cho đến gần đây tôi quan sát thấy một hành vi không mong muốn: kênh gọi lại bị lỗi trên máy chủ nhưng kênh có vẻ ổn ở phía máy khách, điều này dẫn đến khách hàng không đăng ký lại trong khi máy chủ đã bị xóa người đăng ký và khách hàng đó sẽ không nhận được bất kỳ cuộc gọi lại nào.
Tôi nghĩ về giao tiếp song công, nếu có lỗi kết thúc, kênh song công sẽ bị lỗi.
phiên đáng tin cậy được kích hoạt và thời gian chờ là rất dài (2 giờ) (có lẽ đây dẫn đến khách hàng có thể chấm dứt lỗi không cảm biến nhanh chóng đủ?)
Ai có thể giải thích tại sao điều này xảy ra?
Một câu hỏi khác sẽ là lý do tại sao nó bị lỗi? Tôi có 40 máy khách được kết nối nhưng máy chủ sẽ phát hiện một máy khách ngẫu nhiên bị lỗi vào một thời điểm ngẫu nhiên.