web.config中处理程序的path属性的含义

时间:2011-08-12 11:51:01

标签: asp.net web-config iis-7.5 handlers

我正在查看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

路径参数试图匹配的部分是什么?

1 个答案:

答案 0 :(得分:7)

在您的网址中匹配某些模式的意义上,**.路径不是真正的“通配符”映射。

*处理程序处理对与站点的HTTP处理程序中已指定的任何路径(或动词/前置条件)不匹配的所有内容的请求。 HTTP处理程序列表实际上是一个有序列表,如果按路径排序,IIS7的MMC中的默认视图可能会产生误导。要查看真正的处理顺序,您应该点击右侧操作窗格中的*查看订单列表“链接。

执行此操作时,您会看到*处理程序位于最后,称为StaticFile处理程序。可能还有一些其他内容,例如TRACEVerbHandlerOPTIONSVerbHandler,它们仅响应TRACEOPTIONS动词,您通常可以忽略它们,因为它们在正常操作下不会执行

*.处理程序特定于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管道的基础知识,以便了解它们(我花了一些资料来读取),但坚持下去