網站備份還原至本機 IIS 測試環境後,前台瀏覽正常,但發文功能報錯;同樣程式碼在正式伺服器卻運作無誤。重裝、升級 IIS 均無效,最終發現是網站根目錄缺少「寫入」與「指令碼資源存取」權限。
問題徵狀
- 本機 IIS 架站,瀏覽正常,發文/上傳報錯(通常為 403 或 500 錯誤)。
- 正式伺服器同程式碼運作正常。
- 重裝 IIS、升級版本均無法解決。
根因
備份還原或複製部署時,NTFS 權限未正確繼承,導致 IIS 工作進程身分(IUSR_、IWAM_ 或應用程式集區身分)無法寫入目錄(如資料庫檔、上傳資料夾、快取目錄)。
解決步驟
- 開啟「Internet 服務管理器」,右鍵網站/虛擬目錄 →「屬性」→「目錄安全性」或「主目錄」索引標籤。
- 確認「寫入」核取方塊已勾選。
- 點選「設定」→「應用程式對應」或進階設定中,啟用「指令碼資源存取」(允許 WebDAV/指令碼讀寫資源)。
- 若使用應用程式集區,請進一步檢查集區身分識別在 NTFS 層面對目錄的寫入權限(安全性頁籤 → 編輯 → 新增 IIS_IUSRS 或特定集區身分 → 允許寫入/修改)。
調整完成後重新整理網站(F5 或 `iisreset`),發文功能即可恢復正常。部署時請務必同步檢查 NTFS 與 IIS 雙層權限。