IIS 配置選項之一是向客戶端瀏覽器發送多少錯誤詳細資訊。
很明顯,為什麼人們想要自己的開發伺服器,而不是從生產伺服器向公眾傳遞詳細的錯誤訊息。
如何設定 IIS 將錯誤傳送到特定主機(例如開發人員的 IP 位址)?我不想遠端桌面到伺服器只是為了查看應用程式上的真正錯誤是什麼。
我正在考慮的替代方案是在同一伺服器上設定另一個網站並僅授予特定主機的存取權限。該網站將充當我試圖從中獲取詳細錯誤的網站的反向代理,但這似乎比應有的更複雜。
答案1
使用標準 IIS 設定只能讓您區分本機伺服器和任何遠端電腦。沒有辦法允許某些遠端電腦獲得詳細錯誤,而其他電腦則不能。
不管怎樣,有一個技巧可以讓你做到這一點。
您關於擁有第二個站點進行開發的想法已經很明確了,理想情況下您想要一個包含所有應用程式檔案的站點,但您想要兩個不同的 web.config 來定義錯誤設定。
擁有一個網站但有兩個配置是不可能的,但 IIS 配置系統是分層的,您可以將大多數設定儲存在多個位置。
建立兩個都指向同一實體位置的網站。
您不是將設定放入本機 web.config,而是將其放入<system.web><customErrors>
全域 web.config %systemroot%\Microsoft.NET\Framework64\v4.0.30319\Config\web.config
,並且在這兩種情況<system.webServer><httpErrors>
下,%systemroot%\System32\inetsrv\config\applicationHost.config
您都使用位置標記將這些設定括起來,例如:
<location path="ProdSite">
<system.web>
<customErrors mode="On" />
</system.web>
</location>
<location path="DevSite">
<system.web>
<customErrors mode="Off" />
</system.web>
</location>
您仍然可以使用 IIS 管理器來執行此操作,在Management
站點部分中,打開Configuration Editor
並向下鑽取到要更改的設置,在頂部將From
下拉列表更改為Root Web.Config
或ApplicationHost.config
仍然不是超級容易,但您只需一個網站就可以了。