Tôi không thể từ chối lợi ích hiệu suất của cuộc gọi không đồng bộ hai chiều, nhưng một số điều khiến tôi cảm thấy cảnh giác.Thực tiễn tốt nhất cho khách hàng Duplex WCF
Mối quan tâm của tôi là đối tượng khách hàng được khởi tạo, WCF có thể cho biết phiên bản dịch vụ khách hàng cụ thể nào sẽ nhận được đối số gọi lại không?
Bất cứ ai có thể cho tôi biết nếu đây là một ý tưởng hay không? Nếu không, tai sao không?
new DuplexChannelFactory<IServerWithCallback>(
new ClientService(),
new NetTcpBinding(),
new EndpointAddress("net.tcp://localhost:1234/"+Guid.NewGuid()))
Nếu đường dẫn ảo trên được dành riêng như thế nào nó có thể được loại bỏ. Tôi muốn tuổi thọ của dịch vụ khách hàng khá ngắn. IE thực hiện một yêu cầu và nhận được một phản ứng và khi thực hiện nhận được, giết nó. Làm thế nào xấu là hình phạt hiệu suất trong việc làm cho đời sống dịch vụ khách hàng ngắn như trái ngược với gộp nó và giữ nó sống lâu hơn.
Ý tưởng là để tránh vấn đề thời gian chờ. Khi thực hiện nhận, gửi, xử lý ASAP. Theo quy ước - không thể vượt qua các dịch vụ khách hàng xung quanh. Nếu bạn cần thông tin, hãy tạo một thông tin mới, đơn giản - giống như EF/L2S, v.v.
Từ bên trong bản thân dịch vụ WCF, làm cách nào để tôi hủy phiên với máy khách. I E. Tôi không muốn khách hàng kết thúc phiên - Tôi biết tôi có thể trang trí hoạt động của mình cho phù hợp, nhưng tôi muốn dịch vụ chấm dứt chính nó theo chương trình khi các điều kiện nhất định được đáp ứng.
Tôi có thể gắn cổng và chuyển tiếp tương ứng để giải quyết mọi sự cố tường lửa, nhưng điều tôi lo lắng là nếu ứng dụng khách ngồi sau bộ cân bằng tải. Dịch vụ sẽ biết máy chủ cụ thể nào sẽ gọi?
Câu trả lời này có đúng với NetTcpBinding hay chỉ để liên kết Dual Http? – Yaniv