/*十有三博客*/
  • 首页
  • 关于本站
  • 网站地图
  • RSS订阅

ChinaPay踩坑笔记二:发布后依然无法支付订单提示错误代码80040154没有注册类

2016-07-06 十有三 0 浏览:7167 .NET技术 ASP.NET

本文接着上一篇的踩坑笔记一,在重新开发ChinaPay的支付过程中,又遇到新的问题,将支付模块发布到IIS服务器上,发现竟然无法使用,在提交支付订单的时候会提示:检索 COM 类工厂中 CLSID 为 {522E44BF-7BC9-4135-B5EB-8CC154144B0D} 的组件失败,原因是出现以下错误: 80040154 没有注册类 (异常来自 HRESULT:0x80040154 (REGDB_E_CLASSNOTREG))。

异常来自 HRESULT:0x80040154

在排查的过程中发现,开发环境中是没有任何问题的,生成也没有任何警告和错误,但是一旦发布就无法使用,所以问题应该与发布环境有关。

结合上次ChinaPay的踩坑经验,怀疑依然与银联在线提供的dll兼容性有关,后通过设置问题项目的应用程序池解决了问题,步骤如下:找到支付项目的应用程序池,打开高级设置,将启用32位应用程序设置为True。

启用32位引用程序


2017年01月13号更新

最近服务器再次进行迁移,又出现了这个问题,在解决了兼容性后问题依然存在,想起忘记注册某个关键DLL。调用银联电子支付的功能必须要先使用regsvr32命令注册Chinapay.dll(我使用ASP.NET只要注册这一个),如果使用的是ASP或者PHP语言的,还要注册CPNPC.DLL。注册成功后支付功能就可以正常使用了。注意netpay.dll、ChinaPay.dll和CPNPC.DLL这3个DLL文件要放在一个目录下。

regsver32注册ChinaPay.dll

官方文档关键说明:

  1. netpay.dll 是普通WIN32原生DLL ,netpay.dll为最底层的应用
  2. ChinaPay.dll以COM的方式调用的netpay.dll
  3. CPNPC.dll调用ChinaPay.dll,但是只有asp的情况下才会用到CPNPC.dll
  4. 如果是csharp的话,只要netpay.dll和ChinaPay.dll两个就可以
  5. ChinaPay.dll 和 CPNPC.DLL 是COM 组件,其中ChinaPay.dll 支持客户端调用, CPNPC.DLL 支持SERVER端脚本调用,如ASP,PHP。
  6. CPNPC.DLL 依赖另外两个DLL。
  7. 使用时请把3个DLL文件放在一个目录下,然后用 regsvr32 命令注册 Chinapay.dll 和 CPNPC.DLL。

作者:十有三

出处:https://shiyousan.com/post/636033939576137476

版权声明:本文采用知识共享许可协议:署名-相同方式共享 4.0 国际(CC BY-SA 4.0)。欢迎转载本文,转载请声明出处或保留此段声明。


  • 上一篇: ChinaPay踩坑笔记一:在64位系统中不支持ASP支付功能
  • 下一篇: 解决VS2015调试无法添加断点并提示断点无效未能绑定的问题

相关文章
  • .Net Framework4.0 ashx页面报错:检测到有潜在危险的Request.Form值
  • Discuz!NT Flash无法上传头像,点击上传后无任何反应
  • Visual Studio 2013 社区版和速成版之间的区别
  • C#将时间转化为ISO8601规范的UTC格式-百度原创星火计划published_time格式转换
  • C#如何根据输入的行数打印出由*星号组成的三角形
  • 解决C#获取SQL的timestamp类型到程序中为byte[]类型的问题

文章分类

.NET技术 123 数据库 24 Web前端 21 网站建设运维 37 操作系统与应用 66 程序猿日常 11 开发工具 12 其他随笔 13

文章标签

ASP.NET ASP.NET MVC C# CSS HTML IIS Javascript Linux MongoDB MySql SQL SQL Server Visual Studio Windows系统 版本控制系统 插件工具 服务器 搞笑娱乐 好文分享 软件应用 生活知识 手机问题 随笔 网络知识 网站设计优化 网站维护 养生保健 异常处理 硬件设备 游戏攻略

热门文章

  • IIS8如何安装和使用URL重写工具-URL Rewrite
  • 林蛋大与楚中天,朱肚皮与朱月坡
  • 解决IE11安装升级失败和在安装前需要更新的问题
  • VS重构重命名的快捷键
  • Windows Server 2012无法安装 .NET3.5-安装角色或功能失败,找不到源文件

推荐文章

  • C# 由数字1、2、3、4、5、6六个数字共可组成多少个没有重复数字的四位数,输出这些数据并统计个数。
  • 使用JavaScript ceil()函数计算分页页码总数
  • VS重构重命名的快捷键
  • 解决SQL Service创建链接服务器出现(null) 是无效的产品名称的问题
  • 实现百度分享自定义或动态设置URL

友情链接

  • Passingwind的博客
  • 码友网

知识共享许可协议 CC BY-SA 4.0本站作品采用知识共享许可协议:署名-相同方式共享 4.0 国际(CC BY-SA 4.0)。
闽ICP备15003702号
闽公网安备 35020302035102号