Asp.net

web.config 中處理程序的路徑屬性的含義

  • June 21, 2020

我正在查看 IIS7.5 配置(system.webServer/handlers)。

你知道處理程序的路徑參數之間\*.和之間有什麼區別嗎?\*您可以使用file.*(匹配 file.txt 和 file.xml) 或abc.a?c(匹配 abc.abc 和 abc.asc) 嗎?

路徑參數可以引用“文件夾”嗎?喜歡\*\f4\*.txt

給定一個 http 請求,例如

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

path 參數試圖匹配的部分是什麼?

在匹配 URL 中的某些模式的意義上,**.路徑並不是真正的“萬用字元”映射。

*處理程序處理對與站點的 HTTP 處理程序中已指定的任何路徑(或動詞/前提條件)不匹配的所有內容的請求。HTTP 處理程序列表實際上是一個有序列表,如果您按路徑排序,IIS7 的 MMC 中的預設視圖可能會產生誤導。要查看真實的處理順序,您應該點擊右側操作窗格中的“查看有序列表”連結。

當你這樣做時,你會看到*處理程序最後出現並被稱為StaticFile處理程序。可能還有一些其他的,例如 theTRACEVerbHandler和 the OPTIONSVerbHandler,它們只響應TRACEandOPTIONS動詞,您通常可以忽略它們,因為它們在正常操作下不會執行。

*.處理程序特定於 ASP.NET 4.0,並在您安裝 ASP.NET 4.0 時添加。該處理程序用於為無擴展 URL 提供支持。最初,此處理程序不執行任何操作,只有在您安裝KB980368 修補程序(也包含在 Windows 2008R2/Windows 7 Service Pack 1 中)時才會發揮作用。

Thomas Marquardt有幾篇關於*.處理程序和無擴展 URL 的精彩文章:

ASP.NET MVC 路由的工作原理及其對靜態請求性能的影響

ASP.NET v4 如何處理無擴展 URL

最初在這些文章中有很多內容要吸收,您可能需要重新審視 IIS7 管道的基礎知識以了解它們(我花了一些時間閱讀材料才能深入了解),但請堅持下去。

引用自:https://stackoverflow.com/questions/7039680