Ho creato un'applicazione ASP.NET MVC 2 in Visual Studio 2008. Ho impostato il build di rilascio per passare attraverso il compilatore ASP.NET per precompilare tutte le viste, ridimensionare Javascript e CSS, ripulire il web.config, ecc. Poiché la distribuzione di produzione sta per un server IIS6, ho impostato la distribuzione pseudo-produzione sul mio computer Windows 7 per fare in modo che il pool di applicazioni esegua in modalità classica il runtime 2.0 . Ho impostato il gestore senza estensione nel web.config che è necessario e tutto ha funzionato alla grande.Distribuire ASP.NET MVC 2 a IIS 7.5 targeting .NET 3.5
Il problema è venuto quando ho aggiornato la soluzione a Visual Studio 2010. sto ancora targeting 3,5 quadro, ma ora sto usando MSBuild 4.0 dato che è quello di Visual Studio 2010 utilizza. Tutto ancora viene compilato correttamente perché funziona correttamente con Cassini, ma quando lo distribuisco nella stessa posizione (stesso pool di applicazioni, identità, ecc.) Ora si comporta diversamente. Ho ancora il gestore extensionless in web.config, ma ora quando navigo alla radice dell'applicazione esegue la navigazione in directory e tutte le rotte che aveva precedentemente gestito ora tornano come errori 404 gestiti dal gestore StaticFile in IIS . Sono in perdita per ciò che è cambiato e sta causando la rottura.
Ho visto this question, ma ho già verificato che tutti i componenti prerequisiti siano installati.
Non è colpire il motore di routing. Questo è il problema. Nonostante sia configurato il web.config, sembra che IIS stia ignorandolo e restituendo lo standard 404. Abilitando la traccia IIS si rivela che i gestori di routing ei moduli non vengono eseguiti. –
In risposta alla tua modifica, avevo bisogno del gestore lì quando è stato compilato usando MSBuild 3.5. In caso contrario, IIS non è in grado di inviare la pagina tramite il motore di routing. –
hm, sono un po 'confuso perché la Build non dovrebbe cambiare nulla per quanto riguarda la gestione delle richieste. Il tuo problema sembra accadere anche prima che colpisca la tua app. È possibile verificare che il pool di applicazioni venga eseguito in modalità integrata?Devo andare ora, ma pubblicherò una risposta estesa più tardi. –