wykonując następujące kroki:ASP.NET MVC eurl.axd błędy
(. Sprawdziłem this similar post, która nie rozwiązuje mojego problemu)
- W systemie Windows Server 2003/IIS6, tworzę nowa strona o nazwie "testapp"
- W VS2010 tworzę nową aplikację ASP.NET MVC 2.
dodam widok o nazwie "Info" z następującego kodu:
<h2>System</h2> <h3>Request</h3> <% foreach (string key in Request.Headers) { Response.Write(string.Format("<p>{0}={1}</p>" , key , Request.Headers[key]) ); } %>
Oprócz standardowych nagłówków widzę tego jednego:
X-REWRITE-URL=/home/info/eurl.axd/e3299f29f8043d4f8a27e0f1d0c40971
Używam Helicon ISAPI Rewrite 3, który generuje nagłówek "X-REWRITE-URL".
Mój problem jest następujący: skąd pochodzi /eurl.axd?....
? Widziałem this article, ale ponieważ jest to pusta aplikacja w nowym folderze z nową pulą aplikacji, w tym folderze internetowym nie ma aplikacji 2.0. *. Nie ma wirtualnych folderów wskazujących na inny katalog itp. Witryna jest skonfigurowana dla ASP.NET 4.0, która jest poprawnie zarejestrowana.
Problem polega na tym, że eurl.axd wkręca parametry na moich trasach MVC.
Opcje w artykule "Zmiany w programie ASP.NET 4.0" nie działają dla mnie, ponieważ w tej aplikacji nie ma żadnych składników 2.0 i muszę używać bezinwazyjnych adresów URL.
Aktualizacja Właśnie zauważyłem, że System.Web.MVC w GAC jest wersja 2.0.0.0. Czy należy to zaktualizować do wersji 4.0 przy instalacji VS2010 i wersji 4.0?
Nie rozumiem, dlaczego widzę ten błąd w domyślnej aplikacji ASP.NET MVC 2. Wsparcie!!
Aktualizacja 2/2011 - Rozwiązane
Mając wreszcie próbował wyłączyć bez rozszerzeń adresów poprzez hack rejestru, problem zniknął. Uważam za sprzeczne z intuicją, że wyłączanie adresów URL bez rozszerzenia powoduje, że działają bez rozszerzenia adresów URL (z mapowaniem wieloznacznym w IIS6), ale weźmiemy to, co mogę dostać.
Aktualizacja 12/2014
(Wesołych | Szczęśliwy | Pokojowe) (Boże Narodzenie | Chanuka | Kwanzaa | grudnia).
Zapomniałem wspomnieć, że każda inna aktualizacja systemu Windows nuked zmiany rejestru. Wyglądało to jak dziwne problemy, gdy żądanie do http://site.dom/bob
zakończyło się niepowodzeniem, podczas gdy http://site.dom/bob/
zakończyłoby się sukcesem. Baw się dobrze! (Zwróć uwagę na końcowy ukośnik.)
Dzięki za szczegółową odpowiedź. Pytanie - czy wyłączanie adresów URL bez rozszerzenia nie koliduje z routingiem MVC? –
Moje trasy MVC mają w nich ".aspx", ale każde ". Coś", które jest mapowane do aplikacji ASP.NET ISAPI, działałoby. Np. "/store.aspx/controller/action/id" –
Powinienem dodać ... nadal możesz mieć bez rozszerzenia adresów URL za pomocą mapowania wieloznacznego, tak aby wszystko przechodziło przez aplikację ISAPI ASP.NET. Tak właśnie zrobili ludzie w V2. Ale miało to implikacje związane z perfekcją. Schemat, który stworzyli dla V4 z filtrem, był próbą domyślnego uzyskania bezstratnych adresów URL w IIS6, ponieważ tylko adresy URL bez rozszerzenia są przepisywane, aby uzyskać .axd, i nie wszystko musi iść do ASP. Aplikacja NET ISAPI. Jeśli przepisywanie adresów URL oparte na ISAPI za pomocą narzędzi takich jak IIRF nie jest dla ciebie ważne, możesz równie dobrze zaakceptować ustawienia domyślne. –