2012-02-22 156 views
6

在IIS7中運行傳統ASP應用程序時,何時會發生500錯誤而不是500.100錯誤?我的意思是500錯誤發生,但不是500.100錯誤。我的印象是,經典ASP只會在VBScript代碼發生錯誤時纔會拋出500.100錯誤。 通過一個例子進行一些解釋會非常有幫助。經典ASP中的500 Vs 500.100錯誤

+0

我從來沒有見過1 500.100與ASP錯誤,只有500. – 2012-02-22 14:58:30

+0

你是對的 - 我相信IIS 7只是返回一個500的任何內部服務器錯誤。爲什麼這是一個問題? – 2012-02-22 15:08:59

+1

我的本地機器上有IIS 7.5。對於IIS中的傳統ASP網站,我爲500.100錯誤代碼指定了自定義錯誤頁面「Error1.asp」。爲此,我在IIS的網站配置下使用了「錯誤頁面」。現在,當經典的asp頁面發生錯誤時,IIS將呈現Error1.asp。這意味着錯誤500沒有得到提升。這就是爲什麼我問這個問題500錯誤VS 500.100錯誤。爲什麼我的IIS 7.5在這種情況下提出了500錯誤? – Sunil 2012-02-22 15:26:58

回答

7

如果腳本錯誤,則經典ASP始終返回500.100狀態。這在以前版本的IIS中已經很長時間了,並且行爲沒有改變。

如果你想趕上傳統的ASP腳本錯誤能夠讀取Server.GetLastError()對象在您的自定義錯誤頁(說的日誌記錄),你需要專門爲500.100提供的處理程序。

如果不指定自定義500.100錯誤,那麼IIS將回落到您的自定義(或者它自己)500錯誤頁,但Server.GetLastError()不會提供任何有關錯誤的有用信息。

+0

Kev - 謝謝。您的解釋非常有幫助,並且從經典的ASP角度看,500和500.100之間的差異非常明顯。 – Sunil 2012-02-23 06:26:42

+0

我回答說已經在這裏:http://stackoverflow.com/a/9352669/290343 – 2012-02-23 07:22:39

+0

是的,但讓我們面對@OferZelig凱夫的解釋更好。 +1 – Lankymart 2014-03-28 09:28:19