2011-08-12 9 views
7

Zajmuję się konfiguracją IIS7.5 (system.webServer/handlers).Znaczenie atrybutu ścieżki na procedury obsługi w web.config

Czy wiesz, jaka jest różnica między \*. i \* w argumencie ścieżki dla procedur obsługi? Czy możesz użyć file.* (aby dopasować file.txt i file.xml) lub abc.a?c (aby dopasować abc.abc i abc.asc)?

Czy argument ścieżka może odnosić się do "folderu"? jak \*\f4\*.txt?

Biorąc pod uwagę żądania http jak

GET \f1\f2.f3\f4\a.b.c?arg1.arg2.arg3=3&arg4.txt=1.4 

co jest częścią argument ścieżka stara się dopasować?

Odpowiedz

7

Ścieżki * i *. nie są mapowaniem "wieloznacznym" w sensie dopasowania jakiegoś wzorca w adresie URL.

Obsługa * obsługuje żądania dla wszystkich treści, które nie pasują do żadnych ścieżek (lub czasowników/warunków wstępnych) już określonych w procedurach obsługi HTTP dla witryny. Lista procedur HTTP jest w rzeczywistości uporządkowaną listą, domyślny widok w MMC IIS7 może być mylący, jeśli sortujesz według ścieżki. Aby zobaczyć prawdziwy porządek przetwarzania, należy kliknąć link "Wyświetl uporządkowaną listę" w prawym okienku akcji:

Po wykonaniu tej czynności zobaczysz, że obsługa * jest ostatnia i nazywa się handler . nie może być kilka innych, takich jak TRACEVerbHandler i OPTIONSVerbHandler których tylko odpowiedzieć na TRACE i OPTIONS czasowników, które ogólnie można zignorować, ponieważ nie są wykonywane w ramach normalnej eksploatacji.

handler *. jest specyficzna dla ASP.NET 4.0 i jest dodawany po zainstalowaniu programu ASP.NET 4.0. Ten moduł obsługi zapewnia wsparcie dla adresów URL bez rozszerzeń. Początkowo ten program obsługi nie robi nic nly wchodzi w grę po zainstalowaniu KB980368 hotfix (która jest również przekształcana w Windows 2008R2/Windows 7 Service Pack 1).

Jest kilka świetnych artykułów przez Thomas Marquardt temat obsługi *. i bez rozszerzeń adresów URL:

How ASP.NET MVC Routing Works and its Impact on the Performance of Static Requests
How Extensionless URLs Are Handled By ASP.NET v4

Jest sporo początkowo absorbować w tych wyrobach i może być konieczne aby powrócić do fundamentów rurociągu IIS7, aby zorientować się w nich (zajęło mi kilka czytań, aby materiał się pogrążył), ale trzymaj się go.

Powiązane problemy