2016-05-12 13 views
12

Có cách nào để biên dịch trước chế độ xem ASP.NET MVC trên Azure Web App (cụ thể khi được xuất bản qua Quản lý phát hành trên VSTS) không?Chế độ xem ASP.NET MVC biên dịch trước trên Azure Web App

Khi mỗi lượt xem đã được nhấn một lần, trang sau đó sẽ hiển thị rất nhanh. Nhưng sự chậm trễ đầu tiên đó có thể là một điều không tốt cho người dùng và không có cách nào để kịch bản chạm vào từng trang.

Tôi không chắc liệu mình có cần thay đổi thứ gì đó trong quá trình xây dựng/phát hành trên VSTS hay không. Nếu tôi cần chạy một thứ gì đó trên cá thể Azure Web App sau khi nó được phát hành (hoặc một cái gì đó hoàn toàn khác).

Dường như tìm cách gọi aspnet_compiler sau khi xuất bản có thể là những gì tôi cần (và tôi đã thấy rằng liên quan đến Vai trò Web trên Dịch vụ đám mây) nhưng tôi không thể làm việc đó.

Calling

%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_compiler -v "/" -p "d:\home\site\wwwroot" 

qua Console trong Cổng Azure thực hiện tốt (và tìm thấy lỗi nếu có bất kỳ) nhưng không có bất kỳ ảnh hưởng đến thời gian khởi động - đánh một cái nhìn lần đầu tiên vẫn mất một thời gian dài.

Vì vậy, có thể đó không phải là hướng đi đúng.

Tôi đã xem xét RazorGenerator (bao gồm gói .MSBuild nuget) và tôi không thể làm cho nó hoạt động được, nhưng thực sự tôi đã do dự thực hiện rất nhiều thay đổi cho các dự án chỉ để có được biên dịch trước khi phát hành. Cũng lưu ý rằng tôi hiện đang sử dụng TFVC, chứ không phải Git, trong VSTS, vì vậy tích hợp Kudu/Git (dường như kích hoạt phần biên dịch trước theo một số bài báo) không có sẵn cho tôi theo như tôi có thể nói .

Các ý tưởng khác?

+0

Tôi tự hỏi nếu chạy thử nghiệm hiệu suất web dựa trên đám mây trên trang web sau khi tác vụ phát hành của bạn sẽ tạo ra lần truy cập chậm đầu tiên trên lượt xem của bạn? – majita

Trả lời

15

Bạn có thể thêm "/ p: PrecompileBeforePublish = true" tranh luận trong "Visual Studio Xây dựng" bước: enter image description here

Sau đó, nhiệm vụ sẽ gọi aspnet_compiler trong quá trình xây dựng và tạo ra một sản lượng biên dịch sẵn cho việc triển khai.

+1

Có thể sử dụng đối số 'PrecompileBeforePublish' khi Azure App Service được xuất bản trực tiếp qua lệnh' msdeploy.exe' không? –

+0

Thú vị. Tôi đã được bảo rằng điều đó không hiệu quả. Nhưng rõ ràng là vậy. Vâng, tuyệt vời. Cảm ơn! – Tim

+9

Điều này sẽ tạo một dll cho mỗi lần xem. Nếu bạn cũng thêm/p: UseMerge = true/p: SingleAssemblyName = AppCode vào đối số, bạn sẽ chỉ có một dll đơn, tải nhanh hơn. –

0

Trong studio trực quan 2013+, hãy chọn Build-> Profiles. Chọn hồ sơ, sau đó chọn "Cài đặt". Bên dưới "Cấu hình", mở rộng "Tùy chọn xuất bản tệp", sau đó chọn tùy chọn "Biên dịch trước khi xuất bản".

+0

Cũng đừng quên bỏ chọn "Cho phép trang có sẵn có thể cập nhật". – Mik

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