2009-03-26 29 views
13

Tôi có một dịch vụ WCF (basicHttpBinding) được lưu trữ trong II7 trên Vista mà tôi mong đợi để xử lý nhiều yêu cầu đồng thời. Tôi đang cố gắng để tải thử nghiệm dịch vụ bằng cách spawing 200 chủ đề trong một ứng dụng thử nghiệm và gọi các dịch vụ WCF. Tôi đã chạy ứng dụng thử nghiệm này trên cùng một máy với máy chủ cũng như nhiều máy tính khác và tôi luôn nhận được kết quả tương tự - không quá 5 nhân viên được sử dụng. Đây có phải là nút cổ chai WCF, HTTP hoặc IIS không?Tại sao WCF giới hạn kết nối đồng thời tới 5?

Trả lời

11

Đây là tính năng để ngăn chặn tấn công từ chối dịch vụ. Ra khỏi hộp, WCF được thiết kế để được an toàn. Kiểm tra hành vi dịch vụ, tìm trong msdn cho cấu hình maxConcurrentCalls và maxConcurrentSessions. Tôi nghĩ giới hạn là 10, nhưng tôi có thể sai.

+2

Đây là câu trả lời gần nhất - nếu tôi thay đổi maxConcurrentCalls số lượng công nhân WCF tích cực phản ánh giá trị mà, đến một điểm. Bất cứ điều gì trên 10 không thực sự chạy nhiều công nhân của tôi. Kỳ lạ thay, mặc định là 16 nhưng tôi không thể nhận được 16 cuộc gọi để hoạt động cùng một lúc. –

+2

Giới hạn mặc định là 16 không 10. Btw 0x10 là 16 :) –

+0

MS cho biết mặc định cho phiên là 10 trong .NET 3.5, 100xprocessor trong 4.0+. http://msdn.microsoft.com/en-us/library/system.servicemodel.description.servicethrottlingbehavior.maxconcurrentsessions(v=vs.90).aspx –

2

WCF được bảo mật theo mặc định. Điều này có nghĩa rằng các thiết lập mặc định giới hạn những gì bạn có thể làm với dịch vụ WCF của bạn để tránh những thứ như tấn công từ chối dịch vụ. Điều này là rất tốt cho các dịch vụ web phải đối mặt với internet, nhưng đôi khi nó có thể cắn bạn. Tùy thuộc vào những gì ràng buộc và hành vi bạn sử dụng, nó có thể là một thiết lập trong bất kỳ của những người.

Here là tổng quan về các cài đặt này - nó sẽ yêu cầu một số thử nghiệm về phía bạn để xác định chính xác những gì đang cắn bạn.

2

Không, nó chỉ là cài đặt điều chỉnh mặc định trong WCF. Nó được cấu hình trong phần tử serviceThrottling của một hành vi trong tệp cấu hình dịch vụ, có một thuộc tính maxConcurrentSessions. Mặc định 5, nhưng bạn có thể đặt nó thành bất kỳ thứ gì bạn muốn.

5

Đây là bài viết hay về Quản lý sơ đồ WCF từ tạp chí MSDN của Juval Lowy: http://msdn.microsoft.com/en-us/magazine/cc163590.aspx Số phát hành từ tháng 6 năm 2006 (trong trường hợp MSDN sẽ bán lại liên kết của họ).

Nó giải thích các kỹ thuật và cài đặt để quản lý vòng đời dịch vụ (điều chỉnh là một trong số chúng) và hiển thị những cài đặt cần áp dụng để tăng số lượng kết nối đồng thời.

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