2008-12-03 31 views
13

Tôi đã thử biên dịch trước ứng dụng ASP.NET MVC của mình và triển khai nó vào một hộp IIS6 (với ánh xạ ký tự đại diện), tuy nhiên tôi gặp lỗi khi hiển thị một phần khung nhìn (điều khiển người dùng). Làm việc tốt trên máy dev của tôi trước khi biên dịch trước.Tôi có thể biên dịch trước ứng dụng ASP.NET MVC của mình không?

Lỗi này là:

Server Error in '/' Application.

The partial view 'ListGrid' could not
be found. The following locations were
searched:
~/Views/Initiative/ListGrid.aspx
~/Views/Initiative/ListGrid.ascx
~/Views/Shared/ListGrid.aspx
~/Views/Shared/ListGrid.ascx

Tôi đã kiểm tra xem \ Shared cho các tập tin và nó không có ở đó, mà tôi nghĩ là bình thường vì biên dịch sẵn của nó. Nhưng chỉ dành riêng cho tiếng cười khúc khích tôi đặt một file trống ở chỗ tên thư mục ListGrid.ascx, nhưng sau đó tôi đã nhận lỗi này:

Server Error in '/' Application.

The file '/Views/Shared/ListGrid.ascx'
has not been pre-compiled, and cannot
be requested.

Tôi googled và tìm kiếm SO nhưng không thể tìm thấy bất kỳ vấn đề tương tự, nhưng không có may mắn.

+0

Tôi đã hỏi một câu hỏi tương tự cách đây một thời gian: http://stackoverflow.com/questions/108405/how-can-i-compile-asp-net-aspx-pages-before-loading-them-with-a- webserver – Paco

Trả lời

3

Mặc dù bạn có thể biên dịch trước một trang MVC nhưng tệp dạng xem ascx và aspx không nằm trong dll được biên dịch mà chỉ có tệp .cs. Bạn sẽ vẫn cần phải triển khai các tệp .aspx và .ascx.

Hope this helps

+8

Trên thực tế, trang web biên dịch sẵn chứa mọi thứ, bao gồm tệp ascx và aspx. Các bản gốc vẫn cần phải có mặt trong thời gian chạy ASP.NET để truy cập chúng dưới dạng nhị phân, nhưng chúng chỉ là phần giữ chỗ và không chứa bất kỳ nội dung nào. –

16

Bạn có thể precompile một ứng dụng MVC bằng cách đặt này trong bài-xây dựng hành động trong các thuộc tính dự án:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_compiler -p "$(ProjectDir)." -v /$(ProjectName) 

này mất nhiều thời gian hơn mà không có nó một chút, tuy nhiên bạn sẽ có được thêm khả năng phát hiện một số lỗi xảy ra trong thời gian chạy trước khi triển khai.

Biên dịch sẽ không thành công nếu bạn có mã không hợp lệ trong chế độ xem của mình hoặc thiếu lượt xem bằng cách sử dụng phương pháp này.

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