Mediante i seguenti passaggi:ASP.NET MVC eurl.axd errori
(. Ho controllato this similar post, che non risolve il mio problema)
- In Windows Server 2003/IIS6, creo un nuovo sito chiamato "testapp"
- In VS2010, creo una nuova applicazione ASP.NET MVC 2.
aggiungo una vista chiamata "Info" con il seguente codice:
<h2>System</h2> <h3>Request</h3> <% foreach (string key in Request.Headers) { Response.Write(string.Format("<p>{0}={1}</p>" , key , Request.Headers[key]) ); } %>
Oltre alle intestazioni standard vedo questo:
X-REWRITE-URL=/home/info/eurl.axd/e3299f29f8043d4f8a27e0f1d0c40971
Sto usando Helicon ISAPI Rewrite 3, che sta generando l'intestazione "X-REWRITE-URL".
Il mio problema è questo: da dove viene il /eurl.axd?....
? Ho visto this article, ma poiché si tratta di un'app vuota in una nuova cartella con un nuovo pool di app, NON ci sono 2.0. * App in esecuzione all'interno di questa cartella web. Non ci sono cartelle virtuali che puntano a un'altra directory, ecc. Il sito è configurato per ASP.NET 4.0, che è registrato correttamente.
Il problema è che eurl.axd sta avvitando i parametri nei miei percorsi MVC.
Le opzioni nell'articolo "ASP.NET 4.0 Breaking Changes" non funzionano per me, perché non ci sono componenti 2.0 in questa app e ho bisogno di utilizzare URL senza estensione.
Aggiornamento Ho appena notato che System.Web.MVC nel GAC è la versione 2.0.0.0. Questo dovrebbe essere stato aggiornato a 4.0 con l'installazione di VS2010 e del framework 4.0?
Non capisco perché vedo questo errore con un'applicazione ASP.NET MVC 2 predefinita. Aiuto!!
Aggiornamento 2/2011 - Risolto
aver finalmente provato la disabilitazione degli URL senza estensione tramite l'hack del Registro, il problema è scomparso. Trovo controsenso che disabilitare gli URL senza estensioni faccia funzionare gli URL senza estensioni (con la mappatura dei caratteri jolly in IIS6), ma prenderò ciò che posso ottenere.
Aggiornamento 12/2014
(Merry | Felice | Peaceful) (Natale | Hanukkah | Kwanzaa | dicembre).
Ho dimenticato di menzionare che ogni altro aggiornamento di Windows ha annullato la modifica del registro. Questo è apparso come problemi strani in cui una richiesta di http://site.dom/bob
avrebbe esito negativo, mentre il http://site.dom/bob/
avrebbe avuto successo. Divertiti! (Notare la barra finale.)
Grazie per la risposta dettagliata. Domanda, tuttavia: la disattivazione degli URL senza estensione interferisce con il routing MVC? –
Le route MVC capita di avere ".aspx" al loro interno, ma qualsiasi ".qualcosa" mappato all'applicazione ISAPI di ASP.NET funzionerebbe. Ad esempio, "/store.aspx/controller/action/id" –
Devo aggiungere ... è ancora possibile avere URL privi di estensione utilizzando una mappatura jolly in modo che tutto passi attraverso l'applicazione ISAPI di ASP.NET. Questo è il modo in cui le persone l'hanno fatto in V2. Ma ha avuto implicazioni perf. Lo schema che hanno realizzato per V4 con il filtro è stato un tentativo di ottenere URL privi di estensione in IIS6 funzionando di default in un modo perfetto, dal momento che solo gli URL senza estensioni vengono riscritti per ottenere il .axd, e non tutto dovrebbe andare nell'ASP. Applicazione NET ISAPI. Se la riscrittura dell'URL basata su ISAPI tramite strumenti come IIRF non è importante per te, allora potresti anche accettare le impostazioni predefinite. –