2011-08-12 9 views
7

Estoy viendo la configuración de IIS7.5 (system.webServer/handlers).Significado del atributo de ruta en los controladores en web.config

¿Sabe cuál es la diferencia entre \*. y \* en el argumento de ruta para los controladores? ¿Podría usar file.* (para hacer coincidir file.txt y file.xml) o abc.a?c (para hacer coincidir abc.abc y abc.asc)?

¿Puede el argumento de la ruta hacer referencia a la "carpeta"? como \*\f4\*.txt?

dado una petición HTTP como

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

lo que es la parte del argumento de ruta intenta hacer coincidir?

Respuesta

7

Las rutas * y *. no son realmente asignaciones "comodín" en el sentido de que coincidan con algún patrón en su URL.

El controlador * maneja las solicitudes de todo el contenido que no coincide con las rutas (o verbos/precondiciones) ya especificadas en los controladores HTTP para el sitio. La lista de controladores HTTP es en realidad una lista ordenada, la vista predeterminada en MMC de IIS7 puede ser engañosa si ordena por ruta. Para ver el verdadero orden de procesamiento debe hacer clic en el enlace Ver * Lista ordenada" en las acciones correctas lado panel.

Al hacer esto se verá que el manejador * ocupa el último lugar y se llama al controlador de StaticFile. puede haber algunos otros tales como el TRACEVerbHandler y la OPTIONSVerbHandler que sólo responde a los TRACE y OPTIONS verbos que puede pasar por alto en general, ya que no se ejecutan bajo un funcionamiento normal.

el manejador *. es específica de ASP.NET 4.0 y se agrega cuando instala ASP.NET 4.0. Este controlador está allí para proporcionar compatibilidad con URL sin extensión. Inicialmente, este controlador no hace nada y o nly entra en juego cuando instala KB980368 hotfix (que también se incluye en Windows 2008R2/Windows 7 Service Pack 1).

Hay un par de grandes artículos por Thomas Marquardt sobre el manejador *. y direcciones URL sin extensión:

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

Hay mucho para absorber inicialmente en dichos artículos y es posible que necesite para revisar los fundamentos de la interconexión IIS7 para familiarizarse con ellos (me tomó algunas lecturas para que el material se asimilara), pero quédese con él.

Cuestiones relacionadas