2012-01-04 32 views
8

Đêm qua (nội bộ, may mắn) ứng dụng web MVC đã ngừng hoạt động cho tôi, mà không có bất cứ điều gì thay đổi theo như tôi biết. Bản thân ứng dụng hoàn toàn không được sửa đổi trong hai ngày qua và cũng vậy với IIS.IIS 6.0 đột nhiên hiển thị danh sách thư mục thay vì ứng dụng MVC 3

Vấn đề là tôi nhận được danh sách thư mục của thư mục www thay vì hành động mặc định của ứng dụng (/Home/Index).

www-thư mục My chứa các công cụ tiêu chuẩn:

bin 
Content 
Scripts 
Views 
Global.asax 
Web.config 

Tôi đã thử:

  • thiết lập một "Cụ Trang" làm Bắt đầu hành động nhưng nó không giải quyết được vấn đề.
  • khởi động lại trang web trong IIS
  • bật/tắt "trang nội dung mặc định" trong IIS. Không giúp đỡ, nhưng IIS không nhận trên một Default.html nếu tôi đặt nó trong thư mục www.

Bây giờ, điều này đã xảy ra một lần trước đây. Vào thời điểm tôi đang đi nghỉ và nó đã được giải quyết bằng cách khởi động lại toàn bộ World Wide Web Publishing Service. Trong khi nó có thể làm việc thời gian này là tốt, tôi muốn tìm ra gốc rễ của vấn đề trước khi tạm thời sửa chữa nó chỉ để có nó xảy ra một lần nữa xuống đường. Vì vậy, trong khi khởi động lại Dịch vụ xuất bản của WWW có thể khiến trang web chạy lại, tôi muốn hiểu tại sao nó lại xảy ra ở nơi đầu tiên trước khi sửa nó theo cách này.

Cuối cùng, lưu ý rằng tôi đang chạy các ứng dụng MVC khác trên cùng một máy chủ IIS và chưa bao giờ gặp vấn đề này với chúng.

+0

Làm cách nào để bạn có thể nhận danh sách thư mục cho một địa chỉ không tồn tại trên máy chủ ('/ Home/Index')? Nó liệt kê thư mục này mà bạn đang thấy là gì? Bạn không nhận được lỗi 404? –

+0

Không có thông báo lỗi 404 hoặc lỗi nào. Nó liệt kê nội dung của thư mục www thực của tôi và không cố gắng truy cập/Home/Index theo như tôi có thể nói. –

+0

bạn đã định cấu hình các url không mở rộng trong IIS 6.0 chưa? –

Trả lời

2

Tôi gặp sự cố tương tự. Đường dẫn gốc IIS đã được thay đổi bởi một đồng nghiệp. Giải pháp là khắc phục "Đường dẫn vật lý" trong "Cài đặt nâng cao" của Trang web mặc định.

2

Tôi không nghĩ/Home/Index có thể chạy om IIS 6.0 với bất kỳ cấu hình nào. ASP.NET MVC thực sự yêu cầu "Chế độ tích hợp", nhưng có thể chạy trên cổ điển với việc áp dụng cấu hình.

bài viết đó bởi mister Haack, có thể hữu ích: http://haacked.com/archive/2008/11/26/asp.net-mvc-on-iis-6-walkthrough.aspx

+0

Sẽ kiểm tra điều này, nhưng lưu ý rằng ứng dụng đang chạy mà không có vấn đề gì ngày hôm qua và nó chưa được thay đổi kể từ đó. –

18
  1. mở Command Prompt
  2. Đến C:\Windows\Microsoft.NET\Framework\<version> thư mục.
  3. Chạy aspnet_regiis -i

Đó là tất cả!

+4

Điều này sẽ giải quyết được vấn đề, nhưng đó không thực sự là những gì tôi đã đến đây. Tôi muốn hiểu * tại sao * nó đã xảy ra. –

+0

Tôi sẽ không đề xuất giải pháp này, nếu bạn có một trang web khác cần phiên bản khác .net framework bạn sẽ sửa nó lên – Seichi

+0

@Afshin Mehrabani Làm việc cho tôi, bạn đã cứu mạng của mình :-) cảm ơn bạn rất nhiều :-) –

5

Một chút trễ .... Nhưng khi tôi nhận được kết quả tương tự.

Hồ bơi ứng dụng của tôi đang nhắm mục tiêu sai phiên bản .Net (phải giống với Khung mục tiêu ứng dụng web). Chỉ cần điều chỉnh trong tùy chọn "Đặt ứng dụng mặc định hồ bơi", khởi động lại và đã được giải quyết.

Hy vọng nó sẽ giúp ai đó.

0

Đã thấy sự cố này khi tôi thêm thư mục có tên là "tài liệu" ở gốc và cũng có chế độ xem DOCUMENTS &.Tôi nghĩ rằng nó đã bị nhầm lẫn nếu tôi muốn route \ tài liệu đó là trong thư mục CONTROLLER hoặc thư mục \ tài liệu dưới gốc. Một giải pháp là để thêm một id để các tuyến đường mà làm cho nó sử dụng phiên bản điều khiển của tài liệu

Url.Action("Index", "Documents", *New With {.id = 1}*)

Cũng có thể thay đổi tên của thư mục mới được thêm vào dưới gốc để DOCS.

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