簡體   English   中英

覆蓋 web.config 根文件以啟用 customerrors 標記

[英]overwriting a web.config root file to enable customerrors tag

我有一種情況,我想捕獲由 HTML 頁面(不僅僅是 aspx 頁面)觸發的 404 錯誤,但我只能訪問我網站根文件夾的 web.config 和所有子目錄(注意,我沒有可以訪問實際的 IIS 服務器,但我無法創建應用程序或更改設置)

所以我確實在子目錄上嘗試了 web.config customerrors,它們確實有效,僅適用於 ASPX 頁面,而不是 HTML 頁面,有人知道為什么嗎?

請注意,上面的兩個答案對於通常情況是正確的。 但是,可以將 IIS 6.0 及以下版本配置為通過 ASP.NET 處理 HTML 頁面或其他任何內容。 此外,IIS 7 從根本上改變了一切——實際上,ASP.NET 管道現在就是IIS 管道,因此任何內容都通過任何 HttpModules 進行處理。

因此,在 IIS 7 及更高版本中,您可以為 ASPX 頁面配置的任何內容,都可以為 HTML 頁面配置。

IIS 不解析 HTML 頁面,因此不受 web.config 設置的影響。 如果不配置 IIS 中的設置,我不知道有什么方法可以解決這個問題。

比 Jeremy 所說的更具體一點,IIS 將不同的文件擴展名映射到不同的可執行文件。 默認情況下,它將被配置為讓 .NET 運行時處理 .aspx 文件(在這種情況下,您的 web.config 將被加載和使用),但它將直接為 .html 頁面提供服務(因此回退到自己的 404錯誤處理)。

煩人,但我認為除了控制 IIS 或將平面 html 頁面轉換為 aspx 頁面(即使它們不包含實際的服務器端內容)之外,您無能為力,以欺騙 IIS 讓 .NET處理它們。

您可以查看 ASP.NET 的新路由功能: http://msdn.microsoft.com/en-us/library/cc668201.aspx

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM