Przepisywanie adresów URL usługi IIS vs Routing adresów URL

Planowałem użyć URL routingu dla aplikacji Web Forms. Ale po przeczytaniu kilku postów , nie jestem pewien, czy jest to łatwe podejście.

Czy lepiej użyć modułu URL Rewrite dla formularzy internetowych? Ale jest to tylko dla IIS7. Początkowo było trochę szumu, że routing URL jest całkowicie oddzielony od Asp.Net MVC i może być używany do formularzy internetowych.

Chętnie usłyszę wszelkie sugestie..

Author: splattne, 2008-09-18

7 answers

Jest świetny post tutaj o różnicach między nimi od członka zespołu IIS.

Jedno zastrzeżenie, które radzę, to to, że w przypadku formularzy internetowych, należy zachować ostrożność podczas korzystania z routingu. Napisałem przykładową implementację routingu z WebForms, która rozwiązuje te problemy i, mam nadzieję, pomoże odpowiedzieć na twoje pytanie.

 25
Author: Haacked,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-18 15:55:04

To jest najlepszy artykuł jaki znalazłem na ten temat: IIS przepisywanie URL i ASP.NET routing By Ruslan Yakushev.

IIS przepisywanie URL

Gdy klient wysyła żądanie do serwera www dla określonego adresu URL, komponent przepisujący adres URL analizuje żądany adres URL i zmienia go na inny inny adres URL na tym samym serwerze. Komponent przepisujący URL działa bardzo wcześnie w potoku przetwarzania żądań, więc jest w stanie zmodyfikować żądany adres URL, zanim serwer WWW dokona decyzja o tym, który handler użyć do przetworzenia żądania.

Przepisywanie adresów URL IIS

ASP.NET Routing

ASP.NET routing jest zaimplementowany jako moduł kodu zarządzanego, który podłącza się do potoku przetwarzania żądań usługi IIS na etapie Resolve Cache (Zdarzenie PostResolveRequestCache) i na etapie obsługi Map (PostMapRequestHandler). ASP.NET routing jest skonfigurowany tak, aby działał dla wszystkich żądań złożonych do aplikacji internetowej.

IIS Url Routing

Różnice między przepisywaniem URL i ASP.NET routing:

  1. przepisywanie adresów URL jest używane do manipulowania ścieżkami adresów URL zanim żądanie zostanie obsłużone przez serwer WWW . Moduł przepisywania adresów URL nie wie nic o tym, jaki program obsługi w końcu przetworzy przepisany adres URL. Ponadto rzeczywisty moduł obsługi żądań może nie wiedzieć, że adres URL został przepisany.
  2. ASP.NET routing jest używany do wysyłania żądania do obsługi na podstawie żądanej ścieżki URL . W przeciwieństwie do przepisywania adresów URL, routing komponent zna programy obsługi i wybiera program obsługi, który powinien wygenerować odpowiedź dla żądanego adresu URL. You can think of ASP.NET routing jako zaawansowany mechanizm mapowania obsługi.

Oprócz tych różnic koncepcyjnych, istnieją pewne różnice funkcjonalne między przepisywaniem adresów URL IIS ASP.NET routing:

  1. moduł IIS URL-rewrite może być używany z dowolnym typem aplikacji internetowej, który obejmuje ASP.NET, PHP, ASP i pliki statyczne. ASP.NET routing może być używane tylko z aplikacjami internetowymi. NET Framework.
  2. moduł IIS URL-rewrite działa w ten sam sposób, niezależnie od tego, czy zintegrowany lub klasyczny tryb potoku IIS jest używany dla puli aplikacji. Na ASP.NET routingu, lepiej jest użyć zintegrowanego trybu rurociągu. ASP.NET routing może działać w trybie klasycznym, ale w takim przypadku adresy URL aplikacji muszą zawierać rozszerzenia plików lub aplikacja musi być skonfigurowana tak, aby używała mapowania obsługi "*" w IIS.
  3. moduł URL-rewrite może podejmować decyzje przepisywania na podstawie nazw domen, nagłówków HTTP i zmiennych serwera. Domyślnie, ASP.NET routing działa tylko ze ścieżkami URL i nagłówkiem metody HTTP.
  4. oprócz przepisywania, moduł URL-rewrite może wykonywać przekierowania HTTP, wydawać niestandardowe kody stanu i żądania przerwania. ASP.NET routing nie wykonuje tych zadań.
  5. moduł URL-rewrite nie jest rozszerzalny w obecnej wersji. ASP.NET routing jest w pełni rozszerzalny i konfigurowalny.
 37
Author: splattne,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-04-10 23:40:36

Czy chcesz, aby sformatowane adresy URL były fabryką dla stron spawalniczych?

Czy chcesz zrobićaspx odejdzie?

Przepisywanie, jest do robienia .aspx odejść, lub po prostu uporządkować adres url.

Routing, służy do przeglądania żądania i określania, który obiekt powinien go obsłużyć. Brzmią podobnie, phil haack ma kilka dobrych artykułów na ten temat.

W iis6, isapiRewrite, jest bardzo dobry

 7
Author: DevelopingChris,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-18 04:47:02

Niedawno napisałem własny system przepisywania, aby adresy URL na moich stronach wyglądały lepiej. Zasadniczo, będziesz musiał napisać swój własny IHttpModule i dodać go do swojej sieci.config do przechwytywania przychodzących żądań. Następnie możesz użyć HttpContext.Aktualne.RewritePath, aby zmienić to, na co wskazujesz.

Będziesz również chciał skonfigurować swoją stronę do użyj aspnet_isapi dla wszystkiego .

Po drodze odkryjesz wiele małych problemów, takich jak próba aby pracować ze stronami, które używają "ogonów" na nich (jak w przypadku PageMethods), lub ścieżki elementów strony i postbacks formularza, ale dostaniesz przez nich.

Jeśli jesteś zainteresowany, mogę zamieścić link do kodu i możesz go sprawdzić. Rozwiązałem już wiele problemów, więc możesz je czytać na bieżąco. Jestem pewien, że jest wiele innych osób, które również to zrobiły, które mogą być również dobrymi zasobami.

 4
Author: Hugoware,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-18 14:23:37

Możesz sprawdzić moją ODPOWIEDŹ {[2] } na to pytanie: ASP.NET -budowanie własnego systemu routingu . Dołączam kilka dobrych odniesień, aby pomóc zbudować własny system routingu za pomocą metody przepisywania adresów url lub nowego silnika routingu, którego możesz użyć, który wyszedł z ASP.NET projekt MVC.

 2
Author: Dale Ragan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 11:47:16

Projekt Dynamic Data, który jest dostępny z. Net 3.5 SP1, pokazuje dobry przykład implementacji trasowania adresów url.

 0
Author: Norge,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-18 04:48:56

Do przepisywania adresów URL na IIS, IIRF działa w IIS5, 6, 7. Za darmo. Spokojnie. Szybko. Open Source. Obsługa wyrażeń regularnych.

 0
Author: Cheeso,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-03-09 07:15:04