2012-03-12 44 views
15

Chỉ cần cài đặt IIS Express 7.5 và đang cố gắng gỡ lỗi một vấn đề đồng thời trong một ứng dụng ASP.NET MVC 3. Tuy nhiên, tôi không thể có được máy chủ web để xử lý yêu cầu đồng thời, họ chỉ được thực hiện từng cái một.IIS Express 7.5 không xử lý yêu cầu đồng thời

Tôi đang chạy Apache Bench để mô phỏng tải đồng thời nhưng nó chỉ được xếp hàng đợi.

Bất kỳ ai có ý tưởng nào?

Cảm ơn.

+0

Nếu bạn đang sử dụng $ .getJSON với Firefox, các yêu cầu sẽ được xếp hàng đợi - đây là một điều Firefox ... hãy thử xem sự cố này có xảy ra với các trình duyệt khác không. –

+0

@EranBetzalel OP nói rằng anh ta đang sử dụng Apache Bench –

+0

@JamesHolwell Xin lỗi, không hiểu sao, tôi đã bỏ lỡ điều đó, nhưng có lẽ nó có cùng hành vi có vấn đề với Firefox - tôi không chắc chắn. –

Trả lời

21

Nếu bạn đang sử dụng phiên và tái sử dụng Session ID cho các yêu cầu đồng thời của bạn, ASP.NET sẽ xếp hàng theo yêu cầu bởi vì nó cần một khóa độc quyền trên phiên cho mỗi yêu cầu.

Taken từ http://msdn.microsoft.com/en-us/library/ms178581.aspx

Các yêu cầu đồng thời và Session State

Tiếp cận trạng thái phiên ASP.NET là độc quyền cho mỗi phiên, có nghĩa là rằng nếu hai người dùng khác nhau có những yêu cầu đồng thời, tiếp cận mỗi phiên riêng biệt được cấp đồng thời. Tuy nhiên, nếu hai yêu cầu đồng thời được thực hiện cho cùng một phiên (bằng cách sử dụng cùng một phiên SessionID giá trị), yêu cầu đầu tiên được độc quyền truy cập vào thông tin phiên . Yêu cầu thứ hai chỉ thực hiện sau khi yêu cầu đầu tiên hoàn tất. (Phiên thứ hai cũng có thể truy cập nếu khóa độc quyền trên thông tin được giải phóng vì yêu cầu đầu tiên vượt quá thời gian chờ khóa.) Nếu giá trị EnableSessionState trong chỉ thị @ Page được đặt thành ReadOnly, một yêu cầu cho phiên chỉ đọc thông tin không dẫn đến khóa độc quyền trên dữ liệu phiên. Tuy nhiên, các yêu cầu chỉ đọc cho dữ liệu phiên có thể vẫn phải đợi cho một khóa được đặt bởi yêu cầu đọc ghi dữ liệu phiên để xóa.

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