我正在查看IIS7.5配置(system.webServer / handlers)。
您是否知道处理程序的路径参数中\*.
和\*
之间的差异是什么?
你能使用file.*
(匹配file.txt和file.xml)还是abc.a?c
(匹配abc.abc和abc.asc)?
path参数可以引用“文件夹”吗?比如\*\f4\*.txt
?
给出像
这样的http请求 GET \f1\f2.f3\f4\a.b.c?arg1.arg2.arg3=3&arg4.txt=1.4
路径参数试图匹配的部分是什么?
答案 0 :(得分:7)
在您的网址中匹配某些模式的意义上,*
和*.
路径不是真正的“通配符”映射。
*
处理程序处理对与站点的HTTP处理程序中已指定的任何路径(或动词/前置条件)不匹配的所有内容的请求。 HTTP处理程序列表实际上是一个有序列表,如果按路径排序,IIS7的MMC中的默认视图可能会产生误导。要查看真正的处理顺序,您应该点击右侧操作窗格中的*查看订单列表“链接。
执行此操作时,您会看到*
处理程序位于最后,称为StaticFile
处理程序。可能还有一些其他内容,例如TRACEVerbHandler
和OPTIONSVerbHandler
,它们仅响应TRACE
和OPTIONS
动词,您通常可以忽略它们,因为它们在正常操作下不会执行
*.
处理程序特定于ASP.NET 4.0,并在安装ASP.NET 4.0时添加。此处理程序用于为无扩展URL提供支持。最初,这个处理程序什么都不做,只有在你安装KB980368 hotfix时才会发挥作用(它也被卷入Windows 2008R2 / Windows 7 Service Pack 1)。
有Thomas Marquardt关于*.
处理程序和无扩展名网址的一些很棒的文章:
How ASP.NET MVC Routing Works and its Impact on the Performance of Static Requests
How Extensionless URLs Are Handled By ASP.NET v4
最初在这些文章中有很多东西要吸收,你可能需要重新审视IIS7管道的基础知识,以便了解它们(我花了一些资料来读取),但坚持下去