Tôi đã đặt một thể hiện của proxy máy khách cho dịch vụ WCF vào một thuộc tính trên lớp Ứng dụng để tôi có thể lấy nó từ bất cứ đâu trong ứng dụng.Khi nào nên đóng WCF client?
Tôi không đóng ứng dụng khách, tôi sẽ để nó mở trong suốt thời gian của ứng dụng. Lý do chính cho điều này là nếu tôi đã làm theo // Bình luận trong trang dịch vụ WCF mex (một trong những bạn nhận được nếu bạn trỏ một trình duyệt tại địa chỉ dịch vụ WCF) nó nói // Luôn đóng máy khách. client.Close();
là tốt, ngoại trừ nếu tôi gọi client.Close() ngay sau khi tôi thực hiện cuộc gọi đến phương thức client.SomeAsync() thì nó sẽ bị đóng trước khi kết quả trả về. Tôi có nên đặt cận cảnh vào phương thức Completed() không? Hoặc tôi chỉ nên quên đóng nó, khi đã đóng cửa, tôi phải tạo một phiên bản mới của proxy máy khách (có thể cũng không lưu trữ nó trong App.property nếu đúng như vậy.
thanks, Stephen
hãy nhớ thêm lượt cố gắng để đóng cũng vì gần có thể gây ra ngoại lệ. http://msdn.microsoft.com/en-us/library/ms405496.aspx. Tôi sử dụng nó như thế này thử { client.Close(); } bắt { khách hàng.Bên(); } –
Lưu ý rằng việc gọi Dispose trên ClientBase cũng sẽ dẫn đến việc Close được gọi. –