2010-02-26 81 views
32

我剛剛在我的第一臺Windows Server 2008/IIS7.5服務器上安裝了我參加的比賽。我不能爲我的生活弄清楚如何關閉錯誤處理完全。我看到的唯一選項是:關閉IIS7 HTTP錯誤處理?

  • 定製
  • 詳細
  • 詳細的本地,遠程

我想徹底關閉該功能自定義,我沒有看到任何方式要做到這一點。我錯過了什麼嗎?

我的情況:

我有一個RESTful PHP框架,捕獲異常,如果異常尚未處理髮出HTTP 500狀態。然後它將指定的異常消息放入響應主體併發送給瀏覽器。這在Apache中正常工作 - 發送正確的標題並將消息顯示給用戶。然而,在IIS中,4xx和5xx HTTP狀態碼的響應總是被攔截並注入其他一些準備好的消息或HTML文件,這正是我不希望它再做的事情。請幫忙!

回答

63

後一些更廣泛的搜索,我發現這裏的答案:

http://blogs.msdn.com/webdevelopertips/archive/2009/08/24/tip-93-did-you-know-php-and-custom-error-pages-configuration.aspx

解決的辦法是與此自定義 「httpErrors」 手動編輯的web.config文件進入:

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 
    <system.webServer> 
     <httpErrors existingResponse="PassThrough" /> 
    </system.webServer> 
</configuration> 

但是,由於IIS 7.0「鎖定」功能,您可能會收到一個「此配置節不能用於此路徑。嘲笑父母一級。「錯誤。要解決該問題,請在命令提示符下執行以下命令:

cd C:\Windows\System32\inetsrv 

appcmd unlock config /section:httpErrors 
2

在IIS管理器 - >站點 - >錯誤頁面中,右鍵單擊每個錯誤頁面並選擇「刪除」。

不幸的是,沒有辦法告訴IIS不要從腳本端干涉,所以它總是一個討厭的部署問題。