常見錯誤
System.UnauthorizedAccessException: 拒絕存取。
ASP.NET 未被授權存取所要求的資源。
基底程序識別:IIS 5 為 {MACHINE}\ASPNET,IIS 6 為 Network Service。
若啟用模擬,則為匿名使用者 (IUSR_MACHINENAME) 或驗證後使用者。
解決步驟
- 執行
dcomcnfg 開啟「元件服務」。
- 展開「電腦」→「我的電腦」→「DCOM 設定」。
- 找到 Microsoft Excel Application,右鍵「內容」→「安全性」頁籤。
- 在「啟動及啟動權限」、「存取權限」、「設定權限」三區分別點選「編輯」,加入下列帳戶並勾選「允許」:
ASPNET(IIS 5)或 NETWORK SERVICE(IIS 6/7+)
IUSR_<MachineName>
IWAM_<MachineName>
- 確定並重新啟動 IIS(
iisreset)。
補充說明
- 若網站使用應用程式集區身分(如
ApplicationPoolIdentity),請加入 IIS APPPOOL\<PoolName>。
- 生產環境建議改用 Open XML SDK、EPPlus、NPOI 等純 .NET 程式庫操作 Excel,避免 COM 互通與權限問題。