早期 ASP.NET (VS2003/2005/2008) 開發環境極易因 IIS 設定、權限、專案對應、Proxy 等問題導致「無法啟動偵錯」、「CPU 100%」、「找不到 Web 伺服器」等經典錯誤。本文整理 19 類高頻問題、根因與標準解法,供維護舊專案或理解 ASP.NET 執行管線者參考。
| # | 錯誤現象 | 核心原因 | 標準解法 |
|---|---|---|---|
| 1 | 無法建立 Web 應用程式 | 虛擬目錄未建立應用程式、FPSE 未安裝、IP 設定錯誤 | IIS→虛擬目錄→建立應用程式;IP 設「所有未指派」;安裝 FPSE |
| 2 | ASPX 無法偵錯 | debug="false"、未建立應用程式、Release 模式、無偵錯權限 | Web.config debug=true;建立應用程式;Debug 模式;加入 Debugger Users 群組 |
| 3 | Automation 伺服器無法建立物件 | Scripting.FileSystemObject 註冊遺失 | `regsvr32 scrrun.dll`;修復註冊表 CLSID |
| 4 | 無法在 Web 伺服器上啟動偵錯 | Web.config 缺失、非 Debugger Users、IE 安全性設定 | 檢查 Web.config;加入群組;IE→安全性→自動登入 |
| 5 | HTTP 400 Bad Request | 多重 IP 衝突、ASP.NET 未在 IIS 允許清單 | IP 設「所有未指派」;IIS→Web 服務擴展→允許 ASP.NET v1.1/v2.0 |
| 6 | 偵測到非 ASP.NET 1.1 版本 | IIS 6.0 預設禁止 ASP.NET 1.1 | Web 服務擴展→允許 ASP.NET v1.1.4322 |
| 7 | HTTP 500 Internal Server Error | Proxy 干擾、FPSE 損壞、寫入權限缺失、scrrun.dll | 關閉 Proxy;重裝 FPSE;虛擬目錄勾選寫入;regsvr32 scrrun.dll |
| 8 | VS 偵測非 ASP.NET 1.1 | 刪除預設網站自建新站、IP 固定、Proxy | 還原預設網站;IP 設所有未指派;IE 繞過 Proxy |
| 9 | HTTP 重導向失敗 | Forms 驗證設定錯誤 | 檢查 web.config ` |
| 10 | 無法與伺服器建立連線 | ASP.NET 未向 IIS 註冊 | `aspnet_regiis.exe -i` |
| 11 | 無法啟動 ASP.NET/ATL Server 偵錯 | ASP.NET 註冊遺失 | `aspnet_regiis.exe /i` (VS 命令提示字元) |
| 12 | VC 封裝不可用或未註冊 | VS 安裝受損、雙系統共用目錄 | 控制台→修復/重裝 Visual Studio .NET |
| 13 | 無法在 Web 伺服器上開始偵錯 | 綜合權限/應用程式/驗證問題 | 依序檢查:Web.config debug、Debugger Users、整合驗證、匿名帳號、IE 自動登入、保持 HTTP 連線、建立應用程式 |
| 14 | 無法解析伺服器名稱 | 網路/DNS/專案檔虛擬路徑錯誤 | 檢查網路、.csproj 虛擬路徑、資料庫連線字串 |
| 15 | VS 無法建立/開啟應用程式 (缺 Web 開發元件) | 專案路徑與 IIS 虛擬目錄不符 | 比對 .csproj/.sln 路徑,重建對應虛擬目錄 |
| 16 | 同上 (拷貝專案常見) | 非預設根目錄、缺虛擬目錄、缺組件參考 | 建立虛擬目錄指向專案資料夾;還原 NuGet/參考 |
| 17 | 嘗試開啟的專案是本機專案 | 專案檔損壞/路徑錯誤 | 新建專案→加入現有項目 |
| 18 | 無法直接啟動類庫專案 | 啟動專案設為類庫 | 方案總管→右鍵 Web/WinForm 專案→設為啟動專案 |
| 19 | 斷點無效 (IE8+ 預設禁用腳本偵錯) | IE 進階選項「禁用腳本偵錯」被勾選 | IE→網際網路選項→進階→取消勾選「禁用腳本偵錯(Internet Explorer/其他)」 |
aspnet_regiis.exe -i # 向 IIS 註冊 ASP.NET (最常用)
aspnet_regiis.exe -c # 修復用戶端腳本對應 (解決 webuivalidation.js 404)
aspnet_regiis.exe -ga "User" # 授予使用者 ASP.NET 權限
regsvr32 scrrun.dll # 修復 Scripting Runtime
regsvr32 jscript.dll # 修復 JScript
regsvr32 vbscript.dll # 修復 VBScript