2008-08-21 62 views
4

我有一個Web應用程序,有時只是掛起重負載。爲了讓它回來,我必須殺死「dllhost.exe」進程。 有人知道該怎麼辦?IIS 6/COM +掛起

這是一個帶有大量COM +對象的經典ASP(VBScript)應用程序。

服務器具有以下配置:

  • 英特爾酷睿2雙核2.2主頻/ 4 GB RAM
  • 的Windows Server 2003 Web版SP2
  • IIS 6.0

有一些事件日誌中與COM對象相關的錯誤。但是爲什麼COM對象中的錯誤會導致整個服務器崩潰?

COM對象是作爲COM對象部署的PowerBuilder對象。

IIS 7.0(多)比IIS 6.0更穩定?

回答

2

聽起來像引起問題的狡猾COM對象..你把它們加載到「應用程序」,如果你這樣做,他們是線程安全;或者他們在每次請求中使用和丟棄?

是的,回收每隔幾個小時將有助於「隱藏」問題,但它們應該被調試並正確修復......您是否嘗試過分割/征服以發現哪個COM對象是問題...我可以想象在生產環境中這很棘手,所以你需要設置一些重型自動化測試來在本地重現問題,然後你可以做一些事情。

1

應用程序和系統類別下的事件日誌中可能存在一些錯誤。試着找出這些錯誤的來源或張貼在這裏,我們將看到我們能做些什麼:)

編輯: @Daniel西爾韋拉 內存泄漏是可能的。你使用什麼COM +對象?我在Excel支持的應用程序中遇到了一些問題。

2

您有內存泄漏:)

這篇博客是我的IIS故障排除聖經:

http://blogs.msdn.com/david.wang/archive/2005/12/31/HOWTO_Basics_of_IIS6_Troubleshooting.aspx

如果您不能審計你的代碼並找到參考泄漏是,另一種方法是通過每隔24小時重新啓動IIS來回收應用程序。您可以將命令行腳本設置爲服務器作業來執行此操作。

+0

您可以回收應用程序池。回收選項卡專爲此而構建。不需要腳本。 – jwmiller5 2008-12-12 15:33:58