2012-11-27 22 views
6

Tôi có một ứng dụng MVC 3 với tuyến đường này trong global.asaxASP.net MVC 3 tuyến đường cho các tập tin jpg

routes.MapRoute(
      "ProfilePictureSmall",        // Route name 
      "small/{PictureID}.jpg",       // URL with parameters 
      new { controller = "Picture", action = "Show", Size = "small", PictureID = Guid.Empty } // Parameter defaults 
     ); 

Và đây là hành động từ điều khiển của tôi

public ActionResult Show(string Size, Guid PictureID) 

Tuyến đường này isn 't làm việc trên máy tính của tôi nhưng nó hoạt động trên máy tính địa phương khác và máy chủ thử nghiệm và máy chủ trực tiếp. Nó được sử dụng để làm việc trên máy tính của tôi là tốt, nhưng gần đây tôi đã cài đặt lại hệ thống của tôi vì vậy tôi giả sử nó có cái gì để làm với điều này.

Có ai có ý tưởng nào không?

PS: Tất cả các tuyến đường khác đều hoạt động tốt. Cái này cũng làm việc nếu tôi loại bỏ .jpg

+0

Phiên bản IIS nào bạn đang chạy trên máy của mình? Đảm bảo rằng bạn đang chạy trang web trong cùng một môi trường như mọi người khác. – Digbyswift

+0

Tôi có IIS 7.5.7600.16385, giống như máy thử nghiệm/máy trực tiếp và các máy cục bộ khác – Mihai

+0

Tôi nghi ngờ đây là IIS định tuyến không chính xác. Theo http://stackoverflow.com/questions/6971203/how-to-route-to-css-js-files-in-mvc-net, trình xử lý HTTP có thể là phương thức cần thực hiện? – Gavin

Trả lời

0

Cuối cùng tôi đã làm việc đó bằng cách cài đặt lại IIS.

Tôi không biết những gì tôi đã làm chính xác, nhưng đây là những tính năng mà tôi đã kiểm tra khi cài đặt IIS trên Windows 7 Control Panel/Rẽ on-off Tính năng Windows/dịch vụ thông tin Internet

Đây là những chỉ những thay đổi tôi đã thực hiện (không có thay đổi về mã/cấu hình)

enter image description here

0

Vì nó là tươi cài đặt của Windows, .NET Framework có thể đã được cài đặt trước khi IIS và có thể không được đăng ký một cách chính xác để xử lý tập tin tĩnh có thể cố gắng để phục vụ lên một jpg không tồn tại.

Thử chạy aspnet_regiis.exe -i

+0

cảm ơn, nhưng tôi đã cố gắng mà :) – Mihai

4

Đối với tôi, thêm dòng này để web.config bên system.webServer

<modules runAllManagedModulesForAllRequests="true" /> 

cố định nó.

Btw. Tôi đang sử dụng .Net MVC 4.0

Source

+0

Tôi đã có thiết lập đó. Tôi đang sử dụng MVC 3.0. Có thể tôi sẽ chuyển sang MVC 4 trong tương lai gần – Mihai

+0

Bạn cũng đã thử cài đặt chưa? routes.RouteExistingFiles = true – BjarkeCK

+0

Điều đó tôi chưa làm. Điều kỳ lạ là cùng một mã (bao gồm cả các tập tin cấu hình) hoạt động tốt trên nhiều máy khác. Đó là lý do tại sao tôi đoán nó phải làm với cấu hình IIS của tôi hoặc một cái gì đó như vậy – Mihai