概述
记录一个ChinaPay.dll模块导致应用程序池崩溃关闭的问题,其实半年前就曾遇到这个问题,当初只是简单的处理下,想以后重构这个功能,毕竟主要原因还是清楚的。但是人算不如天算,到现在都还没重构这个旧版本的ChinaPay支付功能模块。
先说下具体情况,引发应用程序池(Application Pool)崩溃并停止的主要原因是一个旧版本的银联在线支付功能模块(ChinaPay)。这是一个用ASP写的模块,兼容性存在很大问题,特别是在64位系统上并不是那么稳定。由于IIS上Application Pool默认的故障防护设置(如果在5分钟的间隔内应用程序池的工作进程发生5次崩溃,应用程序池就会关闭),每次崩溃都会引发网站返回HTTP 503的错误。
半年前为了临时解决这个问题,特意设置了故障间隔分数数和最大故障数量,设置5分钟可以接受崩溃20次,没想到现在又出现了:
临时的解决办法只能在加大故障间隔和故障数了,根本的解决方法还是需要重构ChinaPay的支付功能,取消原本使用ASP写的支付功能,采用新框架编写支付方式。其实只要仔细阅读官方文档,就会发现文档中已经指出了ChinaPay部分模块对64位系统和.net版本的兼容问题,也有具体的解决办法!
自己也可以打开一个应用程序池,右键进入高级设置,选中对应的属性,查看底部的解释说明:
最后在贴下具体的故障信息,这个故障一般记录在Windows日志的应用程序类别中,来源是Application Error:
错误应用程序名称: w3wp.exe,版本: 8.5.9600.16384,时间戳: 0x52157ba0
错误模块名称: ChinaPay.dll,版本: 2.5.5.1,时间戳: 0x48ae8d38
异常代码: 0xc0000005
错误偏移量: 0x000618c3
错误进程 ID: 0x2de4
错误应用程序启动时间: 0x01d259a1a6a031ae
错误应用程序路径: C:WindowsSysWOW64inetsrvw3wp.exe
错误模块路径: C:ChinaPayClinetForWin32ChinaPay.dll
最后
以上就是凶狠机器猫为你收集整理的0xc0000005 系统应用日志_ChinaPay.dll 64位系统导致应用程序池崩溃,异常代码: 0xc0000005...的全部内容,希望文章能够帮你解决0xc0000005 系统应用日志_ChinaPay.dll 64位系统导致应用程序池崩溃,异常代码: 0xc0000005...所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复