2012-03-09 25 views
9

Tôi nghe nói (và đọc) rất nhiều ý kiến ​​liên quan đến đó là tốt hơn: để tái sử dụng một khách hàng dịch vụ WCF hoặc tạo ra một mỗi lần. Nhưng tôi chưa bao giờ hiểu được chính xác những gì xảy ra trong những tình huống đó. Và bên cạnh ý kiến, tôi thực sự không tìm thấy một cái gì đó 'chính thức' (giống như một trang msdn nói đó là tốt hơn, tại sao và khi nào).Tái sử dụng một khách hàng dịch vụ WCF hoặc tạo một ứng dụng mỗi lần?

Khi phát triển các ứng dụng của riêng mình, tôi hiếm khi gặp sự cố khi tạo (và đóng) mỗi lần (quá trình tạo và đóng không thêm vào thời gian xử lý không phải là một milisecond). Nhưng trong một vài trường hợp tái sử dụng một khách hàng dịch vụ WCF thực sự thực hiện một sự thay đổi (trong một cách tốt). Chúng được tôi quan sát trong thực tế, mà không có động cơ logic thực sự.

Vì vậy, bất cứ ai có thể giải thích cho tôi chính xác cách nào tốt hơn không? Và trong tình huống nào? Nó phụ thuộc vào tải của khách hàng? Sử dụng Web Garden trên IIS sẽ ảnh hưởng đến lựa chọn này?

Trả lời

5

Microsoft khuyến cáo bộ nhớ đệm để tạo khách hàng: http://msdn.microsoft.com/en-us/library/aa738757.aspx (xem phần 'vấn đề cần xem xét' phần)

Trong phiên bản ban đầu của WCF có một vấn đề hiệu suất tạo Nhà máy Kênh, do đó tạo ra một khách hàng mỗi lần gây ra hiệu suất các vấn đề. Chúng tôi phải tạo và lưu trữ bộ nhớ cache của nhà máy kênh. Microsoft đã khắc phục sự cố này với bản cập nhật (.NET Framework SP1?) Và bộ nhớ đệm không còn cần thiết nữa.

Về cơ bản, sự khác biệt hiệu suất, sau khi sửa chữa, là không đáng kể, đặc biệt là xem xét rằng bạn đang thực hiện cuộc gọi qua mạng.

+0

"SP1" của * khung * nào? – user2864740

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