Domanda

Ho iniziato a giocare solo con ASP.Net MVC e con i modelli di siti Web di dati dinamici dal nuovo al VS2008. Prendo atto che entrambi usano il routing nella loro gestione degli URL e mi viene fatto capire che a causa del routing, ASP.Net MVC non funzionerà con IIS6. Tuttavia, il mio sito DynamicData funziona perfettamente su IIS6.

Ho dovuto abbandonare temporaneamente la mia esplorazione di ASP.Net MVC per un progetto imminente a causa del requisito IIS7, e mi chiedo quale sia la differenza essenziale tra i due sotto il cofano, ovvero cosa fa funzionare i siti DynamicData su IIS6 e MVC no?

È stato utile?

Soluzione

ASP.NET MVC funziona davvero con IIS6 (e IIS5 del resto) purché abilita i mapping dei caratteri jolly su ASP.NET. Ho distribuito applicazioni MVC in produzione utilizzando IIS6, quindi posso garantire che è possibile.

La differenza chiave è che tutti gli URL in DynamicData terminano in un file con estensione ASPX, quindi, indipendentemente dall'esistenza fisica, viene richiamato il runtime ASP.NET (poiché ASPX è associato ad ASP.NET), mentre la maggior parte ASP.NET MVC richiede di non avere un'estensione (o di avere un'estensione MVC, che non è mappata per impostazione predefinita) e quindi è necessaria la configurazione di IIS prima che funzioni.

IIS7 funziona automaticamente perché IIS7 stesso è gestito e quindi non vi è alcuna separazione tra IIS / ASP.NET.

Altri suggerimenti

Funzionano tutti su IIS6 immediatamente, senza modificare IIS6. Devi solo usare alcune estensioni che sono mappate su isapi asp.net, come .aspx, .ashx o simili.
Inoltre, ASP.NET MVC funziona su IIS6 senza problemi! Lo eseguo moslty su IIS6, con estensione .html mappata su isapi asp.net!
Alcuni provider di hosting condiviso sono disposti ad apportare modifiche a IIS6 al fine di supportare URL senza estensione. Se non vogliono farlo, puoi chiedere loro di mappare .html su asp.net, gli URL sono simpatici e seo friendly. Solo per citare; a google non importa se hai .aspx o .html, è lo stesso che senza estensione.

ASP.Net MVC e Dynamic Data utilizzano lo stesso motore di routing contenuto in System.Web.Routing, quindi funzionano entrambi con IIS6. Il problema riguarda le richieste di mappatura su ASP.Net (come descritto da @Richard Szalay). MVC funzionerà correttamente in IIS6 se viene utilizzata una mappatura jolly, se l'estensione .mvc è mappata su ASP.Net o se un'altra estensione di file già mappata su ASP.Net (.aspx, .ashx, .axd, ecc.) È utilizzato nelle rotte MVC.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top