2011-08-04 25 views
17

Tôi gặp sự cố với trang ASP.NET MVC.ASP.NET MVC trên IIS rơi qua trình xử lý tệp tĩnh

Đây là những chi tiết:

  1. ASP.NET MVC 2
  2. ASP.NET 4 tích hợp đường ống
  3. IIS 7.5 trên Windows Web Server 2008 R2

Bất cứ khi nào tôi thực hiện một yêu cầu cho ứng dụng tôi nhận được thông báo lỗi "Lỗi HTTP 404.0 - Không tìm thấy" và thông tin lỗi chi tiết cho thấy đó là trình xử lý tệp tĩnh báo cáo lỗi:

  • Module: IIS Web Lõi
  • Thông báo: MapRequestHandler
  • Handler: StaticFile
  • Error Code: 0x80070002

có nghĩa là yêu cầu không bao giờ bước vào MVC cây rơm.

Tôi nên lưu ý rằng IIS đã phục vụ ASP.NET MVC 3 trên cùng một hồ bơi ứng dụng và MVC 2 trên nhóm ứng dụng ASP.ENT 2. Vì vậy, đó là combo ASP.NET 2 trên ASP.NET 4 ứng dụng bơi được cho tôi đau đầu.

Về cơ bản tôi muốn nâng cấp ứng dụng từ ASP.NET MVC 2 trên nhóm ứng dụng ASP.NET 2.0 lên ASP.NET MVC 2 trên nhóm ứng dụng ASP.NET 4.0.

Vì vậy, bất kỳ ý tưởng nào?

Trả lời

-7

Vì vậy, tôi đã tìm thấy lỗi. Đã có một tài liệu mặc định còn lại trong thư mục gốc, không cần thiết cho các ứng dụng sử dụng đường ống tích hợp. Ngoài ra một số thay đổi để Global.ascx và đăng ký tuyến đường là neessary, nhưng sau đó nó làm việc.

+2

Ông có thể mở rộng trên các giải pháp? Ví dụ, những thay đổi đối với global.asax? –

+2

Cung cấp thêm thông tin, xin vui lòng –

+0

Giải pháp dường như không liên quan đến vấn đề. – jakejgordon

24

Tôi thấy bạn cố định vấn đề của bạn, nhưng đối với bất cứ ai googling:

Tôi có vấn đề này và trong trường hợp của tôi, tôi chỉ cần thiết để đăng ký ASP.NET 4 với IIS. Tôi đã xóa và thêm lại các trang web để khắc phục các sự cố khác và chỉ cần quên làm điều đó. Lệnh mà làm việc đối với tôi là:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319>aspnet_regiis -i

phiên bản .net riêng của bạn có thể khác nhau, đặc biệt là nếu bạn đang ở trong tương lai, vì vậy con đường trên có thể không hoàn toàn đúng.

+1

Tôi nghĩ số phiên bản là quan trọng ở đây. Tôi đã thử tương tự, nhưng trong phiên bản .net Framework sai. Chỉ cần đặt nó xuống đây, chỉ trong trường hợp ai đó bị mất điểm đó. Điều này làm việc cho tôi. – snakepitbean

13

tôi đã cùng một vấn đề khi tôi cài đặt IIS sau cài đặt Visual Studio vv

tôi đã có thể khắc phục vấn đề bằng cách thay đổi Web của tôi.tập tin cấu hình, thêm các runAllManagedModulesForAllRequests="true" đến <modules> tag:

<system.webServer> 
    <modules runAllManagedModulesForAllRequests="true"> 
     ... 
    </modules> 
</system.webServer> 

(Xem thêm chi tiết/sao chép từ đây: http://www.west-wind.com/weblog/posts/2011/Mar/27/ASPNET-Routing-not-working-on-IIS-70)

+1

Và nó đột nhiên bắt đầu làm việc. Ma thuật tôi nói! – Edgar

+1

Tùy chọn này không nên được đặt vì kết quả trong yêu cầu _all_ bao gồm tất cả các tệp tĩnh được gửi tới trình xử lý được quản lý và kết quả này làm tăng bộ nhớ và sử dụng CPU. Có thể không được chú ý trên các trang web lưu lượng truy cập thấp nhưng một khi IIS sẽ phân phối megabyte hình ảnh, html, js, css và nội dung tĩnh khác mỗi giây, máy chủ của bạn sẽ gặp sự cố. – user3285954

+0

Chỉ cần một sự bác bỏ cho nhận xét của @ user3285954, bộ nhớ tăng lên và việc sử dụng CPU hầu như luôn không đáng kể. Tôi đã làm việc trên một số trang web có lưu lượng truy cập khá cao và cài đặt này chưa bao giờ gây ra sự cố cho tôi. Tôi khuyên bạn nên thử nó trước, và xem nó thực sự tạo ra một vấn đề hiệu suất; nó có lẽ sẽ không. – Ryan

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