Tôi đã tạo một ứng dụng ASP.NET MVC 2 trong Visual Studio 2008. Tôi đã thiết lập bản phát hành để đi qua trình biên dịch ASP.NET để biên dịch trước tất cả các khung nhìn, rút gọn Javascript và CSS, dọn dẹp web.config, vv Kể từ khi triển khai sản xuất sẽ đến một máy chủ IIS6, tôi thiết lập triển khai sản xuất giả trên máy tính Windows 7 của mình để chạy pool ứng dụng ở chế độ cổ điển nhắm mục tiêu thời gian chạy 2.0 . Tôi thiết lập trình xử lý mở rộng trong web.config đó là cần thiết và mọi thứ hoạt động tốt.Triển khai ASP.NET MVC 2 sang mục tiêu IIS 7.5 .NET 3.5
Sự cố xảy ra khi tôi nâng cấp giải pháp lên Visual Studio 2010. Tôi vẫn nhắm mục tiêu 3.5 khung, nhưng bây giờ tôi đang sử dụng MSBuild 4.0 vì đó là những gì Visual Studio 2010 sử dụng. Mọi thứ vẫn biên dịch chính xác bởi vì nó chạy tốt dưới Cassini, nhưng khi tôi triển khai nó đến cùng một vị trí (cùng một nhóm ứng dụng, nhận dạng, vv), nó bây giờ hoạt động khác nhau. Tôi vẫn có trình xử lý mở rộng trong web.config, nhưng bây giờ khi tôi điều hướng đến thư mục gốc của ứng dụng nó duyệt thư mục và bất kỳ tuyến nào mà nó đã xử lý trước đây trở lại khi lỗi 404 được xử lý bởi trình xử lý StaticFile trong IIS . Tôi đang thua lỗ vì những gì đã thay đổi và đang gây ra sự cố.
Tôi đã xem this question, nhưng tôi đã xác minh rằng tất cả các thành phần tiên quyết được cài đặt.
Nó không đánh động cơ định tuyến. Đó chính là vấn đề. Mặc dù web.config được cấu hình, IIS dường như bỏ qua nó và trả về nó là tiêu chuẩn 404. Kích hoạt tính năng dò tìm IIS cho thấy rằng các trình xử lý định tuyến và các mô-đun không được thực hiện. –
Để phản hồi chỉnh sửa của bạn, tôi cần trình xử lý trong đó khi được biên dịch bằng MSBuild 3.5. Nếu không IIS không biết gửi trang thông qua công cụ định tuyến. –
hm, tôi hơi bối rối bởi vì Trình xây dựng không nên thay đổi bất cứ điều gì ở tất cả các yêu cầu xử lý liên quan. Vấn đề của bạn dường như xảy ra ngay cả trước khi nó chạm vào ứng dụng của bạn. Bạn có thể kiểm tra xem hồ bơi ứng dụng của mình có đang chạy ở Chế độ tích hợp không?Tôi phải rời khỏi đây ngay bây giờ, nhưng sau này tôi sẽ đăng câu trả lời mở rộng. –