Tôi hoàn toàn mới đối với WCF. Tôi đã khá chắc chắn nó sẽ hoạt động giống như các dịch vụ web thông thường - và tôi cũng khá chắc chắn rằng tôi đã làm điều đó sai quá, nhưng bây giờ tôi muốn chắc chắn rằng tôi đang làm điều đó đúng.Sử dụng WCF trong một Ứng dụng ASP.Net và Thực tiễn Tốt nhất
Ứng dụng ASP.Net của chúng tôi kết nối với dịch vụ WCF trên internet. Tôi đã bảo mật cơ bản được impletemented và sử dụng SSL. Nó hoạt động nhưng chậm hơn so với khi chúng tôi có các dịch vụ web thông thường. Dữ liệu được trả về cơ bản giống như với dịch vụ web thông thường.
Khi tôi đang sử dụng dịch vụ web thông thường, bất cứ khi nào tôi cần để nhận dữ liệu, tôi sẽ tạo đối tượng dịch vụ mới và gọi hàm cho dữ liệu tôi cần. Điều này dường như làm việc ok, nhưng như tôi sẽ tưởng tượng, không phải là cách tốt nhất để làm điều đó đặc biệt là nếu có hàng ngàn người dùng kết nối cùng một lúc. Vì vậy, khi tôi chuyển đổi sang WCF, tôi quyết định giữ một khách hàng mở và chỉ sử dụng cho mọi người kết nối với trang web. Tôi đặt nó vào bộ nhớ cache và khi bộ nhớ cache sẽ đổ đối tượng, tôi đã có một hàm gọi lại để xử lý nó.
Bây giờ tôi thậm chí không nghĩ về nó cho đến sau khi tôi thay đổi tất cả điều này mà nó có thể đặt ra một vấn đề cho nhiều người kết nối. Nếu người A yêu cầu dữ liệu, người B phải chờ đợi để hoàn thành trước khi dữ liệu của họ được tìm nạp thông qua dịch vụ.
Vì vậy, tôi đã thay đổi nó thành phiên dựa. Tôi hoặc thực hiện điều này sai hoặc nó chỉ backfired vì nó đã không làm việc tốt cả. Khách hàng sẽ hết thời gian, gây ra lỗi hoặc chỉ đơn giản là không hoạt động. Tôi đã thay đổi nó trở lại để được lưu trữ cho bây giờ và nó có vẻ là làm việc tốt (trừ chậm).
"Phương pháp hay nhất" cho trường hợp này là gì? Tôi có phải tạo ứng dụng khách khi đang cần thiết, tạo một phiên dựa trên (và tìm ra những gì tôi đã làm sai) hoặc giữ nguyên nó và sử dụng phương thức lưu trong bộ nhớ cache của một ứng dụng khách không?
+1. Câu hỏi hay. – AnthonyWJones