2012-11-27 13 views
6

Ho un'applicazione MVC 3 con questo percorso in global.asaxASP.net MVC 3 percorso per i file jpg

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

E questa è l'azione dal mio controller

public ActionResult Show(string Size, Guid PictureID) 

Questo percorso isn sto lavorando sul mio computer ma funziona su altri computer locali e server di test e server live. Funzionava anche con il mio PC, ma recentemente ho reinstallato il mio sistema, quindi presumo che abbia qualcosa a che fare con questo.

Qualcuno ha qualche idea?

PS: tutti gli altri percorsi funzionano correttamente. Questo funziona anche se tolgo .jpg

+0

Quale versione di IIS sono in esecuzione sul computer? Assicurati di eseguire il sito nello stesso ambiente di tutti gli altri. – Digbyswift

+0

Ho IIS 7.5.7600.16385, esattamente come le macchine test/live e altre macchine locali – Mihai

+0

Sospetto che questo sia stato instradato in modo errato da IIS. Come per http://stackoverflow.com/questions/6971203/how-to-route-to-css-js-files-in-mvc-net un gestore HTTP potrebbe essere un metodo da prendere? – Gavin

risposta

0

ho finalmente capito di lavorare da ri IIS installazione.

Non so cosa ho fatto esattamente, ma qui ci sono le caratteristiche che ho controllato durante l'installazione di IIS su Windows 7 Pannello di controllo/Attiva-off Caratteristiche di Windows/Internet I servizi di informazione

Questi sono i solo le modifiche che ho fatto (nessun codice/modifiche di configurazione)

enter image description here

0

Dal momento che è nuova installazione di Windows, il .NET Framework potrebbe essere stato installato prima di IIS e non può essere registrato correttamente in modo che il gestore di file statici può tentare di servire un jpg che non esiste.

provare a eseguire aspnet_regiis.exe -i

+0

grazie, ma l'ho provato :) – Mihai

4

Per me, aggiungendo questa linea a web.config all'interno system.webServer

<modules runAllManagedModulesForAllRequests="true" /> 

riparato.

Btw. Sto utilizzando .Net MVC 4,0

Source

+0

Ho già quel set. Sto usando MVC 3.0. Probabilmente effettuerò la migrazione a MVC 4 nel prossimo futuro. – Mihai

+0

Hai provato anche a impostare? routes.RouteExistingFiles = true – BjarkeCK

+0

Che io non abbia. La cosa strana è che lo stesso codice (inclusi i file di configurazione) funziona bene su molte altre macchine. Ecco perché suppongo che abbia a che fare con la mia configurazione di IIS o qualcosa del genere. – Mihai