部署win服務時,常常會出現相似下面的錯誤,錯誤模塊名稱: KERNELBASE.dll。
日誌名稱: Application
來源: Application Error
日期: 2014/5/21 14:14:33
事件 ID: 1000
任務類別: (100)
級別: 錯誤
關鍵字: 經典
用戶: 暫缺
計算機: ams-webserver
描述:
錯誤應用程序名稱: demo.exe,版本: 1.0.5217.18476,時間戳: 0x534b44d9
錯誤模塊名稱: KERNELBASE.dll,版本: 6.1.7601.18015,時間戳: 0x50b83c8a
異常代碼: 0xe0434352
錯誤偏移量: 0x0000c41f
錯誤進程 ID: 0xc04
錯誤應用程序啓動時間: 0x01cf74bbeef9f15b
錯誤應用程序路徑: E:\demo\demo .exe
錯誤模塊路徑: C:\Windows\syswow64\KERNELBASE.dll
報告 ID: 2cf76b05-e0af-11e3-817d-0050568c62ab
事件 Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
<System>
<Provider Name="Application Error" />
<EventID Qualifiers="0">1000</EventID>
<Level>2</Level>
<Task>100</Task>
<Keywords>0x80000000000000</Keywords>
<TimeCreated SystemTime="2014-05-21T06:14:33.000000000Z" />
<EventRecordID>1352</EventRecordID>
<Channel>Application</Channel>
<Computer>ams-webserver</Computer>
<Security />
</System>
<EventData>
<Data>demo.exe</Data>
<Data>1.0.5217.18476</Data>
<Data>534b44d9</Data>
<Data>KERNELBASE.dll</Data>
<Data>6.1.7601.18015</Data>
<Data>50b83c8a</Data>
<Data>e0434352</Data>
<Data>0000c41f</Data>
<Data>c04</Data>
<Data>01cf74bbeef9f15b</Data>
<Data>E:\demo \demo .exe</Data>
<Data>C:\Windows\syswow64\KERNELBASE.dll</Data>
<Data>2cf76b05-e0af-11e3-817d-0050568c62ab</Data>
</EventData>
</Event> 解決方案: 引發這種錯誤的緣由有不少種,可是windows是個很傻的東西,它報的錯誤不會給你很明確的定位,看這種錯誤給人的感受就是權限不夠,致使沒法訪問 C:\Windows\syswow64\KERNELBASE.dll,或者就是缺失KERNELBASE.dll文件。但是排查後又發現系統是有這個文件的,因而網上常常查到的答案就是替換這個文件,或者說給win服務調用的應用程序配置權限。 其實這些方法都不靠譜,緣由很簡單,KERNELBASE.dll文件在系統安裝時就會生成,除非這個文件中毒或者說安裝時文件已經損壞了,不然不要輕易去替換這類系統的文件;其次是權限配置,若是真的是權限問題,報的錯誤不該該是定位到系統文件,而是程序安裝時就報程序的那類錯誤。 因此遇到這類錯誤,最好的方法就是去查看程序自己,特別是須要用到config之類的配置文件,不少時候都是配置文件出的錯誤。好比config文件中記錄日誌是在G盤,而你要安裝的這個win服務機器自己並無G盤,那麼就會報這類錯誤。只需將其日誌記錄的路徑更改現有磁盤上存在的路徑便可。