我在使用IIS中的自定義錯誤處理程序(執行URL)在Windows 2008 R2 x64上的ColdFusion 10中正確處理404錯誤時遇到困難。我已經在以前版本的CF中完成了這個任務,沒有任何問題。在IIS中,在網站功能下,我打開「錯誤頁面」並將其設置爲對所有404錯誤執行「/404.cfm」。在Win2k8 R2 x64上處理ColdFusion 10中404錯誤的問題?
我遇到的問題是404.cfm頁面的輸出沒有完全發送回瀏覽器,頁面無法正確加載。有時候我沒有收回任何東西,其他時候我得到1K,有時候我會得到更多。這是非常不一致的。
隨着設置在IIS中404.cfm處理,我也稱它在onMissingTemplate()方法中Application.cfm:
<cffunction name="onMissingTemplate"
returnType="boolean"
output="true">
<cfargument name="thePage" type="string" required="true">
<cftry>
<cfmodule template="../../../404.cfm" thePage="#Arguments.thePage#">
<cfcatch>
<cfoutput><p>An error occurred</p></cfoutput>
</cfcatch>
</cftry>
<cfreturn true />
</cffunction>
裏面我404.cfm錯誤處理程序,我m電話:
<cfheader statuscode="404" statustext="Not Found">
...然後我輸出一堆東西。
當我刪除對404.cfm中cfheader的調用時,錯誤處理程序正確加載[用於ColdFusion請求]。這是因爲沒有任何事情正在經歷IIS - 相反,它只是通過ColdFusion中的onMissingTemplate()方法。但是,響應標題給了我一個200狀態碼,這是一個問題!由於顯而易見的原因,它需要是404狀態碼。
當我包括cfheader電話,或被請求非ColdFusion頁時(IIS將生成404個狀態碼),我404.cfm處理器的輸出不能完全返回到瀏覽器。我認爲這與IIS獲得行動有關。
我確實在CF錯誤數據庫中報告了這一點,但我想知道是否有什麼我做錯了。錯誤在這裏:https://bugbase.adobe.com/index.cfm?event=bug&id=3488063
我看到這個完全相同的問題,還沒有一個決議。 – 2013-03-04 13:28:51
你投了我提交的錯誤嗎?如果不是,我鼓勵你這樣做。 https://bugbase.adobe.com/index.cfm?event=bug&id=3488063 – Redtopia 2013-03-04 17:13:11
我的確投了票。 – 2013-03-04 18:14:24