在Application.cfc中,當應用程序超時或服務器關閉時,調用OnApplicationEnd。但是,我可以確切地知道哪一個是原因?我只想在服務器關閉時運行一些清理代碼,而不是在應用程序超時時運行。我真的可以這樣做嗎?在ColdFusion 10中,如何判斷OnApplicationEnd是由應用程序超時還是服務器關閉引起的?
0
A
回答
9
堆棧跟蹤在兩種情況下可能都不相同。設置一個測試來捕獲錯誤並在每個實例中記錄堆棧跟蹤。然後,當調用onApplicationEnd來確定原因時,您將知道要查找什麼。 (您需要每次都捕獲一個錯誤並搜索堆棧)。
當然,這是一個很大的免責聲明,你依賴的是未記錄的行爲,可以隨ColdFusion的任何更新等等而改變。老實說,封裝邏輯以至於不關心爲什麼應用程序正在關閉。
+2
+1更有前途的證據,「封裝邏輯更好,因此它不關心應用程序關閉的原因。」 – 2014-09-03 16:28:54
+0
非常感謝您的回覆!在給出一些想法後,我相信我想出了一個不依賴於onApplicationEnd的解決方案。 – 2014-09-04 20:21:06
相關問題
- 1. 如何判斷SWT Shell是以編程方式還是由用戶關閉?
- 2. 如何判斷應用程序是64位還是32位?
- 3. 如何判斷ajax計時器是否已在page_load中關閉
- 4. IIS是Web服務器還是應用程序服務器?
- 5. 如何判斷一個Java應用程序是由Webstart的
- 6. 如何判斷bonjour服務是無線還是藍牙?
- 7. 如何判斷HttpResponse是否已關閉?
- 8. 如何判斷tcplistener是否已關閉?
- 9. 如何判斷Streamwriter是否已關閉?
- 10. 如何判斷請求是來自瀏覽器還是服務器?
- 11. 如何判斷我寫的程序是32位還是64位?
- 12. 如何判斷iPhone應用程序是否由PhoneGap創建?
- 13. 如何判斷用戶是第一次運行還是更新應用程序
- 14. 如何判斷應用程序用戶是升級還是新購買者?
- 15. 如何判斷Dropbox API 503是每個用戶還是每個應用程序
- 16. 如何判斷庫是COM還是DCOM?
- 17. 如何在關閉服務器套接字時阻止應用程序關閉。
- 18. 如何判斷應用程序是以32位還是64位模式運行?
- 19. 如何判斷遠程服務器是否爲多線程?
- 20. 如何判斷它是「ASP.NET網站」還是「ASP.NET Web應用程序項目」?
- 21. ASP.Net延遲,我該如何判斷它是客戶端還是服務器?
- 22. 我的程序應該是應用程序還是服務?
- 23. 如何判斷WCF服務是通過HTTP還是HTTPS調用的?
- 24. 如何判斷事件是由.click()還是由用戶觸發的?
- 25. 如何判斷我的應用程序是作爲32位還是64位應用程序運行的?
- 26. onApplicationEnd - CF實際上是否關閉?
- 27. 如何判斷ID是否是Facebook應用程序或用戶
- 28. 如何判斷在瀏覽器中還是在NodeJS中運行?
- 29. 如何判斷進程是否由服務控制管理器運行
- 30. 如何判斷一組應用程序引擎任務是否全部完成?
也許,在請求結束時存儲最後一個請求的時間並將其與應用程序結束的當前時間進行比較?如果超時,則所用時間將接近應用程序超時。可能不是完美的,但是比看堆棧跟蹤 – 2014-09-03 16:01:30