2010-11-18 26 views
8

Chúng tôi có một trang yêu cầu dịch vụ web bên thứ 3. Khi chịu tải nặng, thời gian phản hồi này kéo dài đáng kể, tuy nhiên bên thứ 3 báo cáo lại rằng có lần xử lý vẫn không đổi. Có thời gian cho thấy rằng từ thời điểm họ nhận được yêu cầu đến thời điểm họ gửi lại thì luôn khoảng 1,5-2,0 giây. Bây giờ chúng tôi đang trải qua thời gian chờ đợi hơn 20 giây. Sự hiểu biết của tôi về ASP.NET là mỗi yêu cầu sẽ chạy trên một thread thread thread IIS và làm cho yêu cầu trở về dịch vụ của bên thứ 3 và quá trình. Vì vậy, tôi không thực sự hiểu những gì có thể chặn đứng ở phía chúng tôi. Có cái gì tôi đang mất tích ?? Có giới hạn ngưỡng vượt quá IIS đang chặn không?Nhiều cuộc gọi đến cùng một dịch vụ web bị chặn?

Nếu tôi thiếu điều gì đó, đề xuất sách thực tế bao gồm chủ đề này cũng sẽ là một bổ sung rất đáng hoan nghênh đối với bất kỳ câu trả lời nào.

+0

làm trang tạo yêu cầu từ phía máy khách hoặc phía máy chủ? –

+0

Nó đưa ra yêu cầu từ phía máy chủ, điều đó có quan trọng không? :) –

+0

+1 câu hỏi hay – PRR

Trả lời

9

Giới hạn .NET thực thi giới hạn 2 yêu cầu web đồng thời cho một máy chủ lưu trữ theo đề xuất của đặc tả HTTP. Vì vậy, trong trường hợp của bạn, nó không phải là dịch vụ web cần nhiều thời gian hơn để thực thi, nhưng ứng dụng của bạn trì hoãn các yêu cầu ở bên trong ràng buộc này.

Bạn có thể tăng giới hạn cho các dịch vụ web bằng cách thêm phím này để tập tin cấu hình của bạn:

<system.net> 
    <connectionManagement> 
     <!-- specific servers... --> 
     <add address="http://example.org" maxconnection="20" /> 

     <!-- ...or any server --> 
     <add address="*" maxconnection="8" /> 
    </connectionManagement> 
    </system.net> 
+0

điều này sẽ chỉ là trường hợp nếu cùng một luồng ở phía máy chủ đang thực hiện các yêu cầu. nếu có nhiều người dùng, do đó, nhiều phiên asp.net, họ sẽ từng trong thread riêng của họ và không có những hạn chế này. đúng? –

+0

@ Giống như vậy, điều đó không đúng. Giới hạn ảnh hưởng đến tất cả các luồng trong tiến trình, trong trường hợp ASP.NET thậm chí là các ứng dụng khác nhau đang chạy trong cùng một nhóm ứng dụng. – realMarkusSchmidt

+0

wow, không biết điều đó. –

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