2012-11-27 102 views
6

我與在Global.asax中爲JPG文件

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

這條路線的MVC 3應用與ASP.net MVC 3路線,這是從我的控制器

public ActionResult Show(string Size, Guid PictureID) 

這條路線ISN行動在我的電腦上工作,但它可以在其他本地計算機,測試服務器和實時服務器上運行。 它也用於我的PC上,但我最近重新安裝了我的系統,所以我認爲它與此有關。

有沒有人有任何想法?

PS:所有其他路線都正常工作。 這其中也工作,如果我刪除的.jpg

+0

你你的機器上運行什麼版本的IIS的?確保您在與其他人相同的環境中運行網站。 – Digbyswift

+0

我有IIS 7.5.7600.16385,完全像測試/活動機器和其他本地機器 – Mihai

+0

我懷疑這是IIS路由不正確。根據http://stackoverflow.com/questions/6971203/how-to-route-to-css-js-files-in-mvc-net HTTP處理程序可能是一種方法? – Gavin

回答

0

我終於得到它通過重新安裝IIS工作。

我不知道我確實做到了,但在這裏是在Windows上安裝IIS 7時 控制面板/打開,關閉Windows功能我已經檢查功能/ Internet信息服務

這些都是隻改變我做了(沒有代碼/配置的變化)

enter image description here

0

既然是全新安裝的Windows,.NET框架可能已被IIS之前安裝,可能無法正確註冊,以便靜態文件處理程序可能試圖服務增加一個不存在的jpg。

嘗試運行aspnet_regiis.exe -i

+0

謝謝,但我已經試過:) – Mihai

4

對於我來說,加入這行來內system.webServer

的web.config
<modules runAllManagedModulesForAllRequests="true" /> 

固定它。

Btw。我使用的.Net MVC 4.0

Source

+0

我已經有了這一套。我使用的是MVC 3.0。我可能會在不久的將來轉移到MVC 4 – Mihai

+0

您是否還試過設置? routes.RouteExistingFiles = true – BjarkeCK

+0

那我還沒有。奇怪的是,相同的代碼(包括配置文件)在許多其他機器上工作正常。這就是爲什麼我猜它必須與我的IIS配置或類似的東西 – Mihai