随笔 - 4,  文章 - 0,  评论 - 4,  阅读 - 13万
部署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盘,那么就会报这类错误。只需将其日志记录的路径更改现有磁盘上存在的路径即可。 
posted on   腾哥来了  阅读(133688)  评论(4编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示