2012-05-25 130 views
4

我們有一個以傳統asp編寫的遺留網站。我們把它託管在iis6上。無論何時出現錯誤,它都會將錯誤的詳細信息和描述發送給客戶。IIS 7在經典ASP中不顯示錯誤。 IIS 6是否

事情是,我們把它移到IIS7後,一些「錯誤」不會顯示出來。例如

<% 
sdfkjlsfjl 
%> 

這會在iis6上觸發錯誤,但在iis7上它會簡單地顯示一個空白屏幕。 在另一方面,如果我這樣做

<% 
if a=1 
end if 
%> 

,將在這兩個服務器就扔失蹤「然後」

,有沒有人面對過這樣的錯誤?

謝謝

+0

如果你得到一個空白屏幕(甚至沒有默認的500錯誤屏幕),它聽起來像傳統的ASP尚未安裝。默認情況下,IIS7不包含經典的ASP處理程序:http://learn.iis.net/page.aspx/562/classic-asp-not-installed-by-default-on-iis/ –

回答

0

我無法重現您在IIS7上描述的行爲。

但是我懷疑你的代碼實際上是On Error Resume Next。此陷阱運行時錯誤,如您的第一個示例代碼。但是,您的第二個示例包含彙編錯誤。語法錯誤不能被捕獲,腳本甚至不會開始執行。相反,ASP將編譯錯誤以500.100狀態返回到IIS。

另一個不太可能的情況是您的響應緩衝關閉,並且一些以前發送給瀏覽器的奇怪內容正在使錯誤不可見(嘗試使用視圖源來確認)。

4

在IIS7中,您需要爲ASP啓用客戶端調試。

  1. 打開IIS管理器
  2. 在功能視圖中,雙擊ASP。
  3. 在那裏您將看到一個「調試屬性」部分
  4. 在您想要更改的屬性上從False更改爲True。
  5. 重新啓動IIS
  6. 測試以查看錯誤是否正在發送到瀏覽器。
0

IIS,下特點 ... ASP ... 調試屬性

設置啓用服務器端調試。這將治癒死亡的空白屏幕。

如果你想看到實際的錯誤在服務器上發生,而不是錯誤...然後

將錯誤發送到瀏覽器