Tôi làm việc trên dự án nơi ứng dụng web được lưu trữ trên máy chủ web gọi các dịch vụ WCF được lưu trữ trên máy chủ ứng dụng. Proxy cho WCF cuộc gọi được tạo ra bởi ChannelFactory và các cuộc gọi được thực hiện thông qua kênh, ví dụ:Gọi WCF không đồng bộ với ChannelFactory và CreateChannel
(bỏ qua sử dụng khối)
var factory = new ChannelFactory<IUserService>(endpointConfigurationName);
var channel = factory.CreateChannel();
var users = channel.GetAllUsers();
Nếu tôi hiểu nó cũng gọi qua kênh là async và chủ đề trên máy chủ web là nhàn rỗi trong khi yêu cầu và chỉ cần chờ phản hồi.
Tôi muốn thực hiện cuộc gọi async như thế này:
var users = await channel.GetAllUsersAsync();
Có cách nào làm thế nào để thực hiện cuộc gọi với ChannelFactory và các kênh truyền hình async? Tôi không tìm thấy gì cả. Tôi biết rằng tôi có thể tạo ra các phương thức async thông qua svcutil/Thêm tham chiếu dịch vụ nhưng tôi không muốn làm điều đó. Ngoài ra, tôi không muốn thay đổi giao diện dịch vụ trên máy chủ ứng dụng (IUserService) bằng cách thêm các phương thức không đồng bộ.
Có cách nào để gọi các phương thức không đồng bộ với ChannelFactory không? Cảm ơn.
cảm ơn bạn đã trả lời. Bạn có mẹo/liên kết nào về cách tạo trình bao bọc tùy chỉnh quanh kênh không? Tôi đã thực hiện một số điều tra nhưng tôi không tìm thấy bất cứ điều gì. – Michal