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
Đâ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.
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.
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.
Đâ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.
Tính đến .NET 4.5, số mặc định của kết nối là (100 * số bộ xử lý) - ServiceThrottlingBehavior.MaxConcurrentSessions Property
- 1. Giới hạn kết nối WCF
- 2. Giới hạn số lượng kết nối đồng thời trong Apache2
- 3. Nginx: Giới hạn số lượng kết nối đồng thời trên mỗi IP tới phần phụ trợ
- 4. Kết nối TCP đồng thời mở trong dịch vụ WCF
- 5. Giới hạn số yêu cầu NSURLConnection đồng thời trong iOS 5?
- 6. Giới hạn kết nối Java ServerSocket?
- 7. Tại sao có giới hạn về số lượt tải xuống đồng thời?
- 8. EF 5 Thay đổi chuỗi kết nối tại thời điểm
- 9. WebRTC: giới hạn kết nối ngang hàng?
- 10. Có giới hạn về số lượng kết nối tcp/ip giữa các máy trên linux không?
- 11. máy chủ đẩy cho hàng triệu kết nối đồng thời
- 12. Cách tìm số lượng kết nối SQL Server đồng thời
- 13. WCF Streaming - Giới hạn tốc độ
- 14. Kết nối RODBC- các hàng bị giới hạn
- 15. NHibernate & WCF: Hiệu suất (sử dụng lại phiên) so với đồng thời (yêu cầu đồng thời)
- 16. Tại sao không có TreeMap đồng thời?
- 17. Tại sao luôn có 5 kết nối không có chương trình kèm theo?
- 18. Đồng thời kết nối DB pool trong Haskell
- 19. Nhiều kết nối mạng đồng thời - Máy chủ Telnet, Python
- 20. Hợp đồng dữ liệu WCF có thể chứa hợp đồng hoạt động WCF bên trong nó không? Tại sao?
- 21. Instances WCF Max dường như bị giới hạn ở 10
- 22. cách giới hạn số lượng công việc đồng thời chạy PBS
- 23. Tăng số lượng kết nối đồng thời trong tomcat 7
- 24. Kết nối đồng thời tối đa với MySQL
- 25. Tại sao vẫn có giới hạn hàng trong Microsoft Excel?
- 26. Tại sao có giới hạn độ dài cho python's eval?
- 27. Tại sao không có lỗi thời gian chạy khi viết rõ ràng trên các giới hạn mảng?
- 28. Tại sao máy chủ lưu trữ hủy kết nối?
- 29. Kiểm tra kết nối WCF
- 30. nhận giới hạn hiện tại?
Đâ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. –
Giới hạn mặc định là 16 không 10. Btw 0x10 là 16 :) –
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 –