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

IIS 安裝後無法瀏覽 ASP 頁面完整排查指南 (Ghost XP/Win7/Server 2008/2012)

編輯:關於伺服器

常見症狀

  • 安裝 IIS 後,`https://localhost` 顯示 **404 / 403 / 500 / 空白頁** 或下載 `.asp` 檔案而非執行。
  • HTML 靜態頁正常,ASP 動態頁失敗。
  • Ghost/精簡版 Windows 缺少 IIS 安裝元件入口。

階段一:確保 IIS 核心元件完整安裝

情況 A:控制台缺少「新增/移除 Windows 元件」→ IIS 選項

Ghost 系統常移除 `sysoc.inf` 中的 IIS 區塊。修復:

  1. 下載對應版本 IIS 安裝檔 (如 `iis5.1` for XP, `iis7` for Vista/7/2008, `iis8` for 8/2012)。解壓至 `D:\iis`。
  2. 編輯 `C:\Windows\inf\sysoc.inf`,在 `[Components]` 區段加入:
    `iis=iis2.dll,OcEntry,iis2.inf,,7` (XP/2003)
    或直接用 DISM (Vista+):
    `dism /online /enable-feature /featurename:IIS-WebServerRole /all`
  3. 命令提示字元 (管理員) 執行:
    `expand D:\iis\iis.dl_ C:\Windows\System32\Setup\iis2.dll`
    `expand D:\iis\iis.in_ C:\Windows\inf\iis2.inf`
  4. 開啟「新增/移除程式」→「新增/移除 Windows 元件」,即可看到 IIS 核取方塊,勾選安裝。

情況 B:正常安裝但 ASP 未啟用

IIS 6.0+ 預設**停用 ASP** (安全預設)。啟用步驟:

  • IIS 6 (Server 2003): Web 服務擴展 → `Active Server Pages` → 允許。
  • IIS 7+ (Vista/7/2008+): 伺服器管理員 → 角色 → Web 伺服器 (IIS) → 新增角色服務 → 勾選 **ASP** (在「應用程式開發」下) → 安裝。
    或 PowerShell:Install-WindowsFeature Web-ASP

階段二:修正 ASP 執行權限與身分識別 (500 內部錯誤核心)

1. COM+ 應用程式身分識別設定

  1. 執行 `comexp.msc` (元件服務)。
  2. 展開:元件服務 → 電腦 → 我的電腦 → COM+ 應用程式。
  3. 右鍵 IIS Out-Of-Process Pooled Applications → 內容 → **識別** 索引標籤。
  4. 選 **系統帳戶** (或指定 `IWAM_機器名` 並設定密碼) → 確定。
  5. 同樣處理 `IIS In-Process Applications`、`IIS Utilities`:安全性 → 取消勾選「啟用驗證」。

2. MSDTC (分散式交易協調器) 修復

若 COM+ 無法展開、報錯 `8004E00F`:

# 停止並重置 MSDTC
net stop msdtc
msdtc -uninstall
msdtc -install
net start msdtc

# 註冊相關 DLL
regsvr32 %windir%\system32\msdtcuiu.dll
regsvr32 %windir%\system32\mtxclu.dll

3. 匿名存取帳戶 (IUSR) 與 IWAM 密碼同步

  1. 電腦管理 → 本地使用者和群組 → 使用者:
    `IUSR_機器名`、`IWAM_機器名` → 設定**相同密碼** (如 `P@ssw0rd`),取消「密碼永不過期」。
  2. IIS 網站屬性 → 目錄安全性 → 編輯 → 匿名存取 → 使用者名選 `IUSR_機器名`、密碼輸入上述密碼、**取消勾選「允許 IIS 控制密碼」**。
  3. 執行同步腳本:
    `cscript %windir%\system32\inetsrv\adsutil.vbs SET W3SVC/WAMUserPass "P@ssw0rd"`
  4. 重新註冊 ASP 元件:
    `regsvr32 %windir%\system32\inetsrv\asptxn.dll`
    `rundll32 %windir%\system32\inetsrv\wamreg.dll, CreateIISPackage`

階段三:網站基本設定檢查清單

項目正確設定
預設文件包含 `default.asp`、`index.asp`、`default.htm`、`index.html`
主目錄 → 本地路徑指向實體網站根目錄 (如 `C:\Inetpub\wwwroot`)
主目錄 → 執行權限純指令碼 (Scripts only)
主目錄 → 讀取/指令碼資源存取勾選 讀取、指令碼資源存取
目錄安全性 → 匿名存取啟用、帳戶 `IUSR_機器名`、取消「允許 IIS 控制密碼」
網站 → IP 位址全部未指派 (或指定內網 IP)
網站 → TCP 連接埠80 (未被佔用,檢查 `netstat -ano | findstr :80`)

階段四:註冊核心指令碼引擎 (終極大招)

regsvr32 %windir%\system32\vbscript.dll
regsvr32 %windir%\system32\jscript.dll
regsvr32 %windir%\system32\inetsrv\asp.dll

驗證測試頁

<%@ Language=VBScript %>
<%
Response.Write "ASP 執行正常! 時間: " & Now()
%>

存為 `test.asp` 放入網站根目錄,瀏覽 `https://localhost/test.asp`。

總結排查順序

  1. **元件完整** (Ghost 系統修補 sysoc.inf / DISM 安裝)
  2. **ASP 啟用** (Web 服務擴展 / 角色服務)
  3. **COM+ 身分識別** (系統帳戶 / IWAM 密碼同步)
  4. **MSDTC 正常** (重裝註冊)
  5. **匿名帳戶啟用、密碼同步、ADSUTIL 設定**
  6. **網站基本設定** (路徑、權限、預設文檔、埠口)
  7. **核心 DLL 重註冊** (vbscript, jscript, asp.dll)

按順序執行,99% 的 ASP 無法執行問題可解決。

Copyright © Windows教程網 All Rights Reserved