2016-09-23 15 views
8

Tôi gặp sự cố lớn với hiệu suất trên trang web MVC mà chúng tôi đang phát triển. Khi trang web được lưu trữ trong Azure, giai đoạn hiển thị lượt xem mất một lượng thời gian lớn khi trang đầu tiên được tải, chúng tôi đang nói 15-60 mỗi trang. Tải tiếp theo của cùng một trang sau đó là tốt đẹp và nhanh chóng, như người ta mong đợi. Đây là một dấu vết từ Glimpse cho một hit trên một trang cho lần đầu tiên:Trang web MVC trên Azure siêu chậm trên lần tải đầu tiên của mỗi trang

enter image description here

Như bạn có thể nhìn thấy từ biểu đồ, vẽ Razor có vẻ là người phạm tội chính. Tôi đã đọc rất nhiều điều về việc biên dịch trước các quan điểm của Razor và tôi đã thử thực hiện điều này nhưng nó không tạo ra sự khác biệt nào cho chúng ta cả. Tôi cũng đang tham gia với các nhà phát triển ứng dụng web Azure đã chỉ ngón tay vào Glimpse là một vấn đề, nhưng tôi đã thử các ứng dụng mà không cần Glimpse cài đặt và nó vẫn còn chậm như bình thường.

Tôi bị kẹt ở đây ... bất kỳ ý tưởng nào?

+0

Tôi đang gặp những vấn đề tương tự, đã nhiều tháng nay. Bất cứ khi nào tôi thực hiện "xuất bản" lên dịch vụ ứng dụng/ứng dụng web của tôi, có thể mất 40-60 giây để trang web quay lại. "Always On" đã bật (nhưng không áp dụng trong trường hợp này). Không có ý tưởng gì gây ra sự chậm chạp. Trang web không phức tạp. Tôi đang sử dụng cấp 'Chuẩn: 1 Nhỏ '. –

+0

http://programmers.stackexchange.com/questions/97538/why-after-each-restart-my-local-net-sites-take-time-to-load-for-the-first-time – JamieD77

Trả lời

2

Đây có phải là lần đầu tiên tải mỗi trang hoặc lần đầu tiên đánh trang web sau khi không hoạt động?

IIS mất một lúc để khởi động sau khi bạn tải tệp mới lên vùng chứa ứng dụng. Vì vậy, trang đầu tiên nhấn sau khi bạn cập nhật ứng dụng sẽ chậm hơn. Ngoài ra, Azure Web Apps bị mất nước sau một khoảng thời gian không hoạt động. Điều này cũng khiến cho trang đầu tiên được truy cập rất chậm nếu trang không được truy cập trong một thời gian.

Để chống lại, trong Cài đặt ứng dụng cho các ứng dụng web, bạn có thể tìm thấy một thiết lập gọi là Always On, mà về cơ bản ping trang của bạn mỗi vài phút để giữ cho các ứng dụng ngậm nước và đáp ứng.

+1

Đây là tải đầu tiên của mỗi trang riêng lẻ. Sự chậm trễ 'bắt đầu lạnh' thông thường là hiện tại nhưng tôi biết rằng nó là bình thường và có thể bỏ qua. Chúng tôi đang sử dụng tùy chọn Luôn bật. – James

4

Tôi đã tìm thấy giải pháp cho thời gian khởi động nhanh hơn của ứng dụng MVC, đáng chú ý nhất trên dịch vụ Azure App. Bí quyết là biên dịch trước các khung nhìn, vì vậy các dịch vụ ứng dụng không phải thực hiện điều đó cho mọi lượt xem cần thiết tại thời điểm yêu cầu.

Bản tóm tắt các phát hiện của mình:

Thêm phần này vào MSBuild đối số và bạn sẽ có một ASP.NET MVC 5 sẽ khởi động nhanh hơn và mỗi trang mới sẽ được tải nhanh hơn.

/p:PrecompileBeforePublish=true /p:UseMerge=true /p:SingleAssemblyName=AppCode 

Thông tin thêm có thể được tìm thấy ở đây: http://blog.deltacode.be/2017/01/08/fix-slow-startup-of-asp-net-mvc-5-on-azure-app-services/

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