Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> 電腦軟體教學 >> 伺服器技術 >> 關於伺服器

IIS HTTP 405 錯誤「用於訪問該頁的 HTTP 動作未被許可」:腳本映射缺失與父路徑權限修復

編輯:關於伺服器

IIS 返回 HTTP 錯誤 405 - 用於訪問該頁的 HTTP 動作未被許可,實為靜態文件擴展名 (.html/.htm/.shtml) 缺少腳本映射處理器,導致 POST/GET 動作被靜態文件處理器拒絕。本文提供腳本映射添加與父路徑啟用雙重修復。

錯誤本質

  • 靜態文件處理器 (StaticFileModule) 僅支援 GET, HEAD,拒絕 POST, PUT, DELETE。
  • 表單提交至 .html 頁面需 ASP/ASP.NET/PHP 等腳本引擎處理,需建立腳本映射。

修復步驟 (IIS 6/7/8/10 通用)

  1. 打開 IIS 管理器 (inetmgr)。
  2. 選中目標網站 → 右鍵「屬性」 (IIS 6) 或 雙擊「處理程序映射」 (IIS 7+)。
  3. IIS 6:「主目錄」標籤 → 「配置」按鈕 → 「應用程序擴展」頁 → 「添加」
    IIS 7+: 右側「添加腳本映射」
  4. 填寫映射信息:
    可執行文件: C:\Windows\System32\inetsrv\asp.dll (經典 ASP)
    或 C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll (ASP.NET)
    擴展名: .html (或 .htm, .shtml, .shtm)
    動作: 「所有動作」 (或按需 GET,HEAD,POST)
    存取: 勾選「腳本引擎」/「啟用父路徑」
  5. 確定保存,應用程式池自動回收生效。

關鍵選項解析

選項作用建議
可執行文件指定處理該擴展名的 ISAPI/CGI 模組按網站技術棧選擇 (asp.dll / aspnet_isapi.dll / php-cgi.exe)
動作: 所有動作允許所有 HTTP Verb 通過此映射表單提交頁面建議;靜態資源頁面僅 GET/HEAD
啟用父路徑允許腳本使用 ../ 相對路徑包含父目錄文件舊 ASP 應用常需,新應用建議關閉提升安全

驗證


' 測試 test.html
<% Response.Write "POST received: " & Request.Form("username") %>

瀏覽器提交表單,顯示「POST received: test」即修復成功。

避坑指南

  • 若網站純靜態無腳本需求,405 實為正常保護行為,勿添加映射。
  • 添加映射後若出現 500,檢查 asp.dll 版本與應用程式池 .NET 版本/管道模式匹配。
  • IIS 7+ 若啟用「父路徑」,需同時在應用程式池「高級設置」→「啟用 32 位應用程式」= True (經典 ASP 必需)。

補全靜態擴展名腳本映射,消除 405 误拦截,讓傳統表單提交無縫運行。

Copyright © Windows教程網 All Rights Reserved