2012-04-19 39 views
5

Trong WCF, sự khác biệt giữa các thiết lập ràng buộc maxConnections và ServiceBehaviors serviceThrottling cài đặt (maxConcurrentCalls, maxConcurrentInstances, maxConcurrentSessions) là gì?WCF serviceBehaviors vs ràng buộc cài đặt

Tôi đang cố gắng thiết lập dịch vụ WCF của mình và tôi không chắc chắn cách những người làm việc với nhau để hạn chế kết nối.

Trả lời

3

Hai điều này rất quan trọng để xem xét:

  1. hành vi serviceThrottling là một dịch vụ-/server-side thiết lập đó xác định có bao nhiêu cuộc gọi đồng thời, trường và các buổi được hỗ trợ bởi máy chủ. Điều này độc lập với bất kỳ điểm kết thúc hoặc điểm dịch vụ nào - đó là cài đặt toàn bộ dịch vụ. Điều này cho phép bạn tinh chỉnh số lượng yêu cầu đồng thời (và/hoặc phiên) một dịch vụ cụ thể có thể xử lý - điều đó phụ thuộc vào những thứ như máy chủ "sức mạnh", RAM, CPU và nhiều yếu tố khác. Những giá trị được lưu giữ khá thấp theo mặc định, để tránh máy chủ không bị "quá tải" và do đó trả lại không đáp ứng do lũ lụt lớn các yêu cầu (sai lầm hoặc cố)

  2. thiết lập maxConnections trên ràng buộc là cụ thể cho các netTcpBinding (và đó là "anh em họ", giống như netNamedPipe và các ràng buộc khác nhau theo định hướng Azure net***Relay) và phải thực hiện với kết nối tổng hợp. Giống như các kết nối cơ sở dữ liệu ADO.NET được gộp chung, các kết nối TCP/IP tới máy chủ có thể được gộp lại và tái sử dụng để giảm chi phí phải phá hủy và tạo lại chúng. Điều này chủ yếu là cài đặt phía máy khách (mặc dù nó cũng có tác dụng trên phía máy chủ), và một lần nữa: nó cụ thể cho netTcpBinding (và anh em họ; tất cả đều dựa trên TCP/IP) và không tồn tại cho bất kỳ ràng buộc.

    Xem: More details on MaxConnections để biết thêm thông tin chi tiết chuyên sâu về các thông tin chi tiết về cài đặt này.

+0

bạn có thể mở rộng trên các hiệu ứng phía máy chủ của cài đặt MaxConnections không? –

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