本文將說明當 ArcGIS Enterprise 使用 IIS 版的 ArcGIS Web Adaptor 作為反向代理器時,若網站發生錯誤,該如何導向自訂錯誤頁面。此作法能避免 IIS 顯示系統預設錯誤訊息,降低伺服器資訊或內部架構外洩的風險,進而減少潛在的安全威脅。
IIS 自訂錯誤頁面大致分成以下兩種:
- IIS 靜態資源存取發生錯誤時,所指定的重新導向的頁面
- IIS 攔截 .NET 應用程式的錯誤,不經由 .NET 應用處理,直接由 IIS 重新導向到指定的錯誤頁面
以下就上述兩種類型錯誤頁面的設定方式進行簡述。
靜態資源存取發生錯誤的頁面導向設定
以下內容說明,僅在 10.0版的 IIS 上測試,其他版請斟酌調整。
這項設定會在使用者試圖瀏覽 IIS 網站上不存在的 HTML 頁面、檔案或圖片時被觸發。
您可以直接透過 IIS 管理員的圖形介面,自訂當網站發生特定錯誤時,要重新導向至哪個指定的網址或頁面(如下圖所示)。

攔截 .NET 應用程式的錯誤,由 IIS 重新導向錯誤頁面
以下說明,僅適用於 11.x 版的 ArcGIS Enterprise
這項設定會在 ArcGIS Server 或是 Portal for ArcGIS 回傳指定錯誤狀態碼時發生。
IIS 版本的 ArcGIS Web Adaptor 是一個基於 ASP.NET Core 的網頁應用程式。如果您希望讓 IIS 攔截 ASP.NET Core 應用程式的錯誤,不經由 ASP.NET Core 處理,而是直接由 IIS 導向至指定的錯誤頁面,可以參考以下設定方式:
步驟1、在 web.config
中加入 IIS 錯誤處理設定
在 ArcGIS Web Adaptor 實體資料夾中,找到 web.config 檔案,並新增以下內容:
<configuration>
<system.webServer>
<httpErrors errorMode="Custom" existingResponse="Replace">
<remove statusCode="404" />
<error statusCode="404" path="/errors/404.html" responseMode="ExecuteURL" />
<remove statusCode="500" />
<error statusCode="500" path="https://www.example.com/errors/500.html" responseMode="Redirect" />
</httpErrors>
</system.webServer>
</configuration>
<httpErrors> 屬性說明
errorMode="Custom"
表示啟用自訂錯誤處理existingResponse="Replace"
覆寫 ASP.NET Core 回應,直接由 IIS 處理
<error> 屬性說明
path
錯誤時導向的頁面路徑(可以是 HTML、ASPX、靜態內容)responseMode="ExecuteURL"
內部重新導向到虛擬路徑(如/errors/404.html
)responseMode="Redirect"
若你想改用「外部網址重導」,請將 responseMode 設為 Redirect
步驟2、建立錯誤頁面
如果在步驟1中,是使用內部重新導向到虛擬路徑(如 /errors/404.html
),則你必須確保已經在IIS目錄中,建立了對應的錯誤頁面,例如:
wwwroot/errors/404.html
這些頁面必須是 IIS 可以直接存取的靜態檔案,不依賴 ASP.NET Core 控制器。
步驟3、驗證
假如您安裝的 ArcGIS Web Adaptor 名稱叫做 portal
,且您有指定發生404錯誤時的重導頁面。您可以將以下網址的{domain}改成您自己的網站網址,測試 portal 是否會自動重新導向到指定的錯誤頁面:
https://{domain}/portal/thisiserrorpage