2013-11-23 23 views
19

Tôi đang viết một ứng dụng ASP.NET Web API được lưu trữ trên IIS7 (không có cấu hình đặc biệt).Yêu cầu phiên API Web đầu tiên rất chậm

Vấn đề của tôi là đối với mỗi yêu cầu đầu tiên (trên một máy mới/trình duyệt mới/sau một thời gian ...) có một sự chậm trễ dài - ngay cả trên các yêu cầu trả về hằng số!

Tôi đã đọc về các tập lệnh "khởi động" nhưng đó không phải là vấn đề ở đây. Có vẻ như máy chủ web đang cố gắng tạo phiên và mất nhiều thời gian. Bất kỳ đề xuất?

EDIT

Tôi nghĩ rằng sự chậm trễ là do sự sáng tạo công nhân quá trình cho mỗi phiên làm việc mới. Bây giờ câu hỏi đặt ra là tại sao nó lại quá chậm và tại sao máy chủ web không sử dụng lại các quy trình công nhân sống để phục vụ các yêu cầu?

Tôi đã định cấu hình nhóm ứng dụng để giới hạn các quy trình của nhân viên thành 5 không có thời gian chờ (được đặt thành 0). Điều này gây ra năm phiên đầu tiên được làm chậm trên các yêu cầu đầu tiên (mà tôi có thể sống với) và bây giờ các quy trình công nhân còn sống. Nhưng đáng ngạc nhiên, theo thời gian, yêu cầu lại chậm lại!

+0

Điều gì xảy ra chính xác? Đây có phải là yêu cầu đầu tiên rất chậm sau một thời gian, từ cửa sổ trình duyệt mới, từ máy mới, với tất cả các điều kiện đó hay với bất kỳ điều kiện nào trong số đó? –

+0

bất kỳ trong số chúng. trên máy tính của riêng tôi nó không xảy ra vì vậy tôi đoán đó là một vấn đề cấu hình IIS – Niro

+0

mỗi ngày trong CRM và SharePoint, chúng tôi cảm thấy rất chậm trễ khi bắt đầu các ứng dụng web là điều này hữu ích cho các trang SharePoint? –

Trả lời

13

Nếu bạn đang sử dụng Windows Server 2008 R2, bạn có thể configure the Auto-Start feature trên Hồ bơi ứng dụng. Ngoài ra trong các thuộc tính của nhóm ứng dụng, bạn nên vô hiệu hóa nó khỏi việc tái chế định kỳ. Hãy nhớ rằng mặc dù điều này sẽ hạn chế sự chậm chạp, hồ bơi ứng dụng vẫn có thể được tái chế bởi IIS. Với tính năng Auto-Start, nó sẽ được nạp lại tự động trong bộ nhớ, nhưng mã trong Application_Start của bạn sẽ được thực thi theo yêu cầu tiếp theo. Vì vậy, bạn vẫn có thể quan sát một số chậm.

+0

Cảm ơn bạn. Bây giờ tốt hơn nhiều. Tôi vẫn còn một số vấn đề về hiệu suất sau khi không truy cập dịch vụ trong một thời gian, nhưng trên một hoạt động tĩnh, nó trở lại luôn luôn nhanh chóng (những người khác liên quan đến EF). – Niro

+0

Bất kỳ giải pháp nào cho trường hợp khi IIS 6.0 vẫn đang được sử dụng? : (AFAIK tính năng này chỉ có sẵn trong IIS phiên bản 7.5 hoặc cao hơn. –

+0

@TomasWalek, không, tôi sợ không có. Đó là một trong những lý do chính tại sao tôi nâng cấp. –

0

Một nguyên nhân khác có thể là https. Trang web của chúng tôi có thể chạy và không có https. Độ trễ tại trang đầu tiên (5 đến 15 giây) chỉ xảy ra khi sử dụng https. Bài đăng này giải thích vấn đề với https và sửa lỗi:

https issue by the MCS team

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