2008-10-29 44 views
5

Tôi có ứng dụng máy khách sử dụng dịch vụ WCF để chèn một số dữ liệu vào cơ sở dữ liệu phụ trợ. Ứng dụng khách sẽ gọi dịch vụ theo từng cơ sở sự kiện (có thể là mỗi giờ hoặc mỗi giây).Cách tiếp cận tốt nhất cho máy khách WCF

Tôi tự hỏi cách tốt nhất để gọi dịch vụ đó là gì.

Tôi có nên tạo kênh giao tiếp và luôn mở kênh hay tôi nên đóng kênh sau mỗi cuộc gọi và tạo lại kênh?

+0

Một gợi ý về việc tạo máy chủ lưu trữ WCF và giao diện và triển khai máy khách của bạn: Gọi đối tượng máy khách của bạn là "máy chủ" và đối tượng lưu trữ "khách hàng" của bạn. Khi bạn ở phía khách hàng, bạn đang tìm cách liên hệ với máy chủ lưu trữ, chứ không phải "IClientSideComms". – Will

Trả lời

5

Câu hỏi đầu tiên là liệu máy chủ của bạn có cần duy trì bất kỳ trạng thái nào về khách hàng trực tiếp (tức là bạn đang thực hiện các giao dịch giống phiên không?) Nếu bạn đang có, bạn sẽ cần có khả năng quản lý cách máy chủ giữ thông tin giữa thông tin liên lạc.

Cảm giác ban đầu về câu hỏi của bạn là nếu không cần phải mở kết nối, hãy đóng kết nối mỗi lần và tạo lại kết nối mới theo yêu cầu. Điều này sẽ tránh được các vấn đề mà một kết nối có thể được đặt vào trạng thái bị lỗi giữa các cuộc gọi. Chi phí của việc tạo và hủy kết nối là tối thiểu, và nó sẽ (có thể) giúp bạn tiết kiệm rất nhiều thời gian trong việc gỡ lỗi khi xảy ra sự cố.

1

Tôi nghĩ bạn có thể muốn triển khai Keep Alive pattern, với thời lượng có thể định cấu hình để thông báo cho cơ chế cơ bản của bạn đóng kết nối nếu vượt quá thời hạn Keep-alive.

Các vấn đề liên quan