2011-05-01 17 views
1

我有一個運行在django/apache/mod_wsgi上的Web服務,我嘗試調試 - 運行服務器端需要很長時間,但是使用某些參數它只是超時。我試過在URI上直接使用wget,並使用urllib2。我從wget出現以下錯誤:我如何調試mod_wsgi/django/apache/wget timeout

Read error (Connection timed out) in headers 

同時,urllib2回報什麼都沒有 - 它似乎是默默示數。我試過在我的apache配置中增加Timeout指令,但這似乎沒有幫助。該服務運行良好,具有不同的參數。我應該如何調試?超時來自哪裏,如果不是apache?

回答

0

機會是問題在於你的服務代碼。確保您的服務代碼在嘗試調試apache之前完成執行並返回到apache。

我建議你跟蹤服務代碼添加輸出語句。請確保在代碼返回到mod_wsgi(mod_wsgi調用的函數的最後一行)之前添加一個輸出語句。機會就是您將看到的代碼掛在特定位置。那就是代碼中的那個點之前的所有調試語句都會出現,這個點之後的輸出語句都不會出現。

如果您不想添加調試語句,請嘗試使用調試器來遍歷代碼。

另一種選擇是使用django開發服務器,並查看在沒有Apache的情況下運行時是否發生超時。但是,由於開發服務器是單線程的,因此如果您處理的問題是與併發有關的錯誤,則代碼不會掛起。

+1

@ user560833那麼它最終會成爲什麼? – 2011-05-03 16:01:31