关于Server 2016 IIS应用程序池崩溃的问题

有一个小ASP程序,调用Access数据库,迁移到Server 2016/IIS10中。

为了访问数据库,安装了Access Database Engine 2016组件。

后期使用中发现,程序在查询数据库时没问题,写入数据库时会随机发生应用程序池崩溃的故障。(但是数据确实已经写进数据库里了)

受IIS的故障恢复策略影响,崩溃的应用程序池会自动重启,但用户这边由于丢失了session,浏览器会提示重新登录。

检查服务器上的事件,发现有如下记录:

错误应用程序名称: w3wp.exe,版本: 10.0.14393.0,时间戳: 0x57899b8a
错误模块名称: KERNELBASE.dll,版本: 10.0.14393.2457,时间戳: 0x5b7e2adb
异常代码: 0xe06d7363
错误偏移量: 0x0000000000033c58
错误进程 ID: 0x2098
错误应用程序启动时间: 0x01d449d2261e982f
错误应用程序路径: c:\windows\system32\inetsrv\w3wp.exe
错误模块路径: C:\Windows\System32\KERNELBASE.dll
报告 ID: cb112c13-544c-4d28-bdbb-f0b1507c8b0a
错误程序包全名:
错误程序包相对应用程序 ID:

按照这个信息上网查询,得到的都是一些不相干的结果。有说是目录没有写入权限的,其实不然,因为崩溃之后再看,发现数据已经写入库中了。

先是把w3wp.exe崩溃时的dump文件拿回来分析,windbg最后提示到是一个office相关的dll上出了异常。

根据之前的使用体验,最后问题就怀疑到了Access Database Engine身上。

 

于是科学上网,按照错误代码0xe06d7363进行查询,得到的结果仍然非常少,但发现一个有用的:

《IIS crash with Access Database Engine 2016 Redistributable》

这个Po主说自己也是从其他系统迁移到2016的,Access Database Engine也装了2016版本,结果就出现了同样的故障。据他测试,如果Database Engine使用2010版本,则没有问题。

下面有回复说也遇到了同样的故障,但是卸载了ADE改装Access Runtime 2016也可以解决。

我先尝试在服务器上卸载ADE,然后安装runtime 2016,发现问题更严重了,无论是web还是gui都无法打开数据库……

最后卸载,安装了ADE 2010 X64版本,结果待观察。

 

补充:CSDN的评论显示越来越不友好了,很难注意到评论内容,只好编辑文章来补充。

更换为ADE 2010 X64版本后,问题解决,没有再出现过错误。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
HTTP 监控程序使用说明(本程序只能用于Win2000/XP,不能用于NT4) 将 HttpMon.exe 复制到硬盘上,并将其添加到Windows的任务计划中,设置为"计算机启动时运行",以administrator 的权限运行。 功能一 定时功能 ------------------------------------------------------------ 可指定每隔几天重启一次计算机或是重启IIS。 若是指定为0天时表示每天重启一次。 功能二 http监控 ------------------------------------------------------------ 1.运行HttpMon.exe 点击"添加"按钮添加监控条件。 a)在"检查链接"里加上用来监控的页面 在state.asp加随意加上一个简单代码,如<%response.write "OK"%> 这样可以检查IIS是否死掉 若要检查链接数据库是否正常还可以把代码写为: <% set db=CreateObject("ADODB.Connection") db.open 数据库链接 db.close %> b)在"检查频率"中可以指定多长时间检查一次,默认是20分钟 c)在返回信息中选择要检查的条件,有几种情况: 返回状态等于,返回状态值不等于,文件大小等于,小于,大于。 "返回状态值" 指IIS返回的客户端时的状态。 200 是正常 302 文件重定向 404 文件找不到 500 服务器内部错误 . . . 默认是:当返回状态不等于200时(表示IIS出错时)重起IIS 当上面情况出现时可做几个对应处理: a)重启计算机 b)重启IIS c)关闭计算机 d)请求页面 "请求页面"可用于扩展程序功能,如通过请求一个程序页面 发信给管理员。 2.因为有时重启IIS不一定成功,所以当上面错误情况出现时,程序会自动缩短检查的隔时间,默认为5分钟。也可以自定义。 当上面操作多次重试都不成功时,还可以设置对应的操作。例如:当重启了3次IIS后还是有错误,这时可以在后面设置为重启计算机 3.关于日志功能 日志功能可以记录Http监控程序的工作情况,他可以记录什么时候检查过什么页面,什么时候出现了错误,对应操作是什么。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值