2012-12-03 26 views
2

Coldfusion目前正在處理* .cfm和* .html頁面。如果我請求不存在的頁面(例如www.example.com/sadfasdfasd.cfm),IIS仍會將請求傳遞給Coldfusion處理程序,而不是直接轉到IIS 404錯誤頁面。 Coldfusion處理程序響應調試器頁面,指出找不到該文件。如何在傳遞給處理程序之前讓IIS檢查文件是否存在。如果它不存在,我希望它顯示404錯誤頁面。目前我的錯誤頁面設置爲提供本地和遠程的詳細錯誤。停止IIS 7.5將不存在的頁面傳遞給Coldfusion

+2

可能是服務器故障的一個更好的問題,但嘗試搜索谷歌的「自定義404 IIS ColdFusion」開始。 – Travis

+0

我們無法找到一種讓IIS管理錯誤頁面的方法,因此我們最終讓Coldfusion處理它。我們設置Missing Template Handler(Coldfusion Admin> Server Settings> Settings> Error Handlers)來映射到我們的錯誤頁面。這對我們很有用。 – azam

回答

1

如果你進入IIS並關閉詳細的錯誤信息,它將顯示IIS錯誤,而不是讓coldfusion處理它。

如果您有權訪問IIS管理器,請轉到右側的站點>錯誤頁面>「編輯功能」。您可能會將相同的代碼放入web.config文件中以處理此問題。

根據您的需要,您可以選擇任何其他選項。

請注意,這也是允許您查看來自coldfusion調試器的coldfusion錯誤的功能。

+0

好的,我試過了。我切換到自定義錯誤並設置自定義404頁面。但是,當我請求無效的.cfm或.html頁面時,我會看到Coldfusion錯誤而不是IIS。如果我請求其他文件類型(.gif,.asp,.php),我會在我的開發框中獲得自定義的404. – azam

+0

hmmm,其工作方式如上所述。不確定。你有沒有嘗試重新啓動IIS? – steve

+0

是的,我重新啓動,我仍然收到Coldfusion的錯誤頁面。看起來處理程序優先。 – azam

1

嘗試添加httpErrors進入到你的根web.config文件如下:

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 
    <system.webServer> 
    <httpErrors errorMode="Custom"> 
      <remove statusCode="404" subStatusCode="-1" /> 
      <error statusCode="404" path="404.html" responseMode="File" /> 
     </httpErrors> 
    </system.webServer> 
</configuration> 

您的自定義404.html頁面也應該駐留在根文件夾。