現象:登錄頁面正常(GET),提交登錄表單(POST)報 `HTTP 405.0 - Method Not Allowed`。
IIS 默認**僅允許 GET/HEAD** 通過靜態文件處理程序。動態處理程序(ASP.NET、PHP、Python)需顯式註冊所需 HTTP 動詞。
<system.webServer>
<handlers>
<!-- 移除限制性繼承處理程序 -->
<remove name="ExtensionlessUrlHandler-Integrated-4.0" />
<remove name="OPTIONSVerbHandler" />
<remove name="TRACEVerbHandler" />
<!-- 重新添加支援所有動詞 -->
<add name="ExtensionlessUrlHandler-Integrated-4.0"
path="*." verb="GET,HEAD,POST,PUT,DELETE,PATCH,OPTIONS"
type="System.Web.Handlers.TransferRequestHandler"
preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>
<!-- ASP.NET Core 還需確保模塊啟用 -->
<modules>
<remove name="WebDAVModule" /> <!-- WebDAV 會攔截 PUT/DELETE -->
</modules>
</system.webServer>
// 全部改為 GET 帶參數(不安全、不RESTful、有長度限制)
// form method="get" action="/login?username=...&password=..."
WebDAVModule 預設處理 `PUT`/`DELETE`/`PROPFIND` 等動詞,優先級高於 ASP.NET 模塊。若站點不需要 WebDAV 協議,**必須移除該模塊**,否則 405 持續出現。