幾個月前我寫過一篇關於我一直在與之鬥爭的問題。 這裏是鏈接:用D7編寫的Windows服務無法在WinServer2008 64位下運行後重啓
0x0eedfade kernelbase.dll faulting module in d7 windows service
一般的問題是,寫在D7首次在Windows服務啓動OK和完美的作品,但在的時候,我不得不重新啓動它(例如,在幾天後) , 我做不到。
今天我已經包含madexcept的可執行文件和我在啓動過程中有:
compiled with : Delphi 7
madExcept version : 3.0l
callstack crc : $dbabc0aa, $f5cfd533, $f5cfd533
exception number : 1
exception class : EOutOfResources
exception message : Error creating window class.
main thread ($c88):
004a7419 +09d ServiceTest.exe Forms 6322 +20 TApplication.CreateHandle
004a7206 +1a6 ServiceTest.exe Forms 6250 +32 TApplication.Create
00493fc3 +10b ServiceTest.exe Controls 10924 +10 InitControls
0049411b +02f ServiceTest.exe Controls 10943 +2 initialization
004048c0 +044 ServiceTest.exe System InitUnits
00404926 +03a ServiceTest.exe System @StartExe
00407392 +03a ServiceTest.exe SysInit @InitExe
004ed991 +011 ServiceTest.exe ServiceTest 62 +0 initialization
75f13675 +010 kernel32.dll
嘛,據我記得它甚至沒有去開始項目文件結尾部分。 我只是好奇是否系統資源不足,但: 系統句柄也處於良好的水平,內存也是如此。
任何建議我還能做什麼?
每次出現此錯誤並且無法重新啓動應用程序時,我無法重新啓動生產服務器。
難道是你有內存泄漏?我沒有使用過makexcept,但我認爲它會記錄錯誤,所以在這種情況下,Windows會爲沒有可用的資源提供給您的服務而感到瘋狂......另外,請檢查其他應用程序/服務使用的資源太多 – ComputerSaysNo 2012-02-23 12:00:33
@DininDuminica是的,它聽起來像泄漏是問題。 madExcept不報告內存或資源泄漏,但內存管理器c /應該。但是,泄漏並不是泄漏(當然不能被認爲是泄漏),直到流程退出並且服務的重新啓動不會終止其運行的流程。因此,需要仔細手動檢查接口(ref count)對象實例的所有構造函數和析構函數和/或循環引用。 – 2012-02-23 13:40:23
什麼是有趣的,當我從服務控制檯運行服務,然後我得到的錯誤,當我作爲一個獨立的應用程序運行,錯誤不會引發... – user740144 2012-02-23 13:40:40