ASP.NET COM 注册失败。怎么弄。

阿狸Ahri 2016-02-20 03:07:05
我现在做那个工行的接口发开(个人觉得超垃圾,比银联差多了)。 他有一个Interop.infosecapiLib.dll,我直接引用这个dll,结果出现
“错误 26 无法嵌入互操作类型“infosecapiLib.infosecClass”。请改用适用的接口。“,后来我改了这个的属性,吧互操作类型设成false,可以编译了。但是运行出来,提示:

检索 COM 类工厂中 CLSID 为 {4D45A159-F940-4BBA-A190-74A65B811E3C} 的组件失败,原因是出现以下错误: 80040154 没有注册类 (异常来自 HRESULT:0x80040154 (REGDB_E_CLASSNOTREG))。

那我就去注册了,我吧那个Interop.infosecapiLib.dll拷贝到c\window\syswow64 下面,我用vs 自带的命令的 Regasm注册了的,
已经显示注册成功了的, 但是现在问题是?注册成功之后怎么引用这个DLL? 我在 引用-添加引用 那里 找com类型库里面没有找到这个Interop.infosecapiLib.dll ,那我怎么引用呢?直接浏览?找到这个dll引用? 但是我即便这样做,也是报上面的错误啊。

怎么弄?

还有不用Regasm怎么注册,我的意思是,那这个玩意按照这理解,是要注册这个东西在服务器上面才能用,那我拿去客户那里的服务器,人家可没有vs,我总不能每个客户那里都装一个这vs吧
...全文
2161 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
疯狂的螺丝 2017-11-17
  • 打赏
  • 举报
回复
你好,遇到了跟你一样的问题,请问另一段demo能否发我一份992237585@qq.com,谢谢啊
城前一道光 2017-03-18
  • 打赏
  • 举报
回复
你好,遇到了跟你一样的问题,请问另一段demo能否发我一份616671338@qq.com,谢谢啊
qq_27206329 2016-12-14
  • 打赏
  • 举报
回复
引用 8 楼 edfdfg 的回复:
我的问题是解决了,我的问题就是 他们提供的dll根本不对,因为是互操作类型的,所以生成dll的时候,系统会自动生成另外一个dll。这个dll跟原来那个已经不一样了,但是他们打包给我的,找来找去就一个dll,我才去引用的。后来打电话去,他另外有发了一小段demo。给我,我引用就可以了
我现在弄工行的接口也出现了同样的问题。 您能发一份可以使用的demo 给我么? 非常感谢了
小马嘎嘎 2016-03-31
  • 打赏
  • 举报
回复

工具》选项》把这个勾选了就可以了
小马嘎嘎 2016-03-31
  • 打赏
  • 举报
回复
解决了吗?我也遇到这个蛋疼的问题了,求指点!
xiaoxiaoaichigui 2016-03-31
  • 打赏
  • 举报
回复
引用 8 楼 edfdfg 的回复:
我的问题是解决了,我的问题就是 他们提供的dll根本不对,因为是互操作类型的,所以生成dll的时候,系统会自动生成另外一个dll。这个dll跟原来那个已经不一样了,但是他们打包给我的,找来找去就一个dll,我才去引用的。后来打电话去,他另外有发了一小段demo。给我,我引用就可以了


我现在也在对接工行的接口,把infosecapi.dll注册以后再引用,自动生成了一个Interop.infosecapiLib.dll动态库文件,在程序里显示的是Interop.infosecapiLib.dll这个引用,但是在执行程序的时候还是报“Interop.infosecapiLib.dll”错误,请指教。
阿狸Ahri 2016-03-25
  • 打赏
  • 举报
回复
我的问题是解决了,我的问题就是 他们提供的dll根本不对,因为是互操作类型的,所以生成dll的时候,系统会自动生成另外一个dll。这个dll跟原来那个已经不一样了,但是他们打包给我的,找来找去就一个dll,我才去引用的。后来打电话去,他另外有发了一小段demo。给我,我引用就可以了
cuikp 2016-03-23
  • 打赏
  • 举报
回复
我也在纠结这个问题,本地环境 win7 64 vs2010 穷尽了各种方法还是: 检索 COM 类工厂中 CLSID 为 {4D45A159-F940-4BBA-A190-74A65B811E3C} 的组件失败,原因是出现以下错误: 80040154 没有注册类 (异常来自 HRESULT:0x80040154 (REGDB_E_CLASSNOTREG))。 求高人指点解决!!
大灰灰Developer 2016-03-14
  • 打赏
  • 举报
回复
我也遇到一样的问题了。 但是我的情况是,我用winform程序没问题。 用mvc或者aspx或者wcf等只要依赖了iis就不行了。 注册COM后直接添加项目引用COM的。能找到inter..xxxxx..dll的文件,引用即可。 但是就是调试和发布就报检索 COM 类工厂中 CLSID 为 {4D45A159-F940-4BBA-A190-74A65B811E3C} 的组件失败 iis win32兼容改了。发布为32位也改了,DCOM权限等也改了。还是不行。。。。winform什么都不要动,引用即可,什么都可以用。晕死了。。。兄弟求破 QQ:27888677
阿狸Ahri 2016-02-20
  • 打赏
  • 举报
回复
还有 用regsvr32注册的话,直接提示,模块已经加载,但找不到入口点dllregisterServer
阿狸Ahri 2016-02-20
  • 打赏
  • 举报
回复
引用 2 楼 sp1234 的回复:
不管哪个银行、或者跟支付宝、微信支付之类的,你应该首先找 .net 下的 sdk。如果有,直接在你的工程中引用人家的 dll 就行了,基本上不会有一星半点儿的耽误时间的事情出现。
我支付宝的,微信,中国银联的我都做的,他们有完整的demo,使用他们的话,直接把他的放进来,引用一下就可以了,然后把那个商户ID,商户密码这些改一下,基本就可以用了。 但是这个工行的,他没有SDK,他们连线上的文档都没有,你要去申请开发的话,好像是打电话去,然后他邮箱发给你,结果发了一大堆乱七八糟的东西过来,demo也有,有一个很简单很简单的demo,连写签名的函数都没有,什么都没有,签名都是用我自己写的一个,唯一有就是一个xml格式,一个dll,那dll直接引用就报错了,就上面的问题了
阿狸Ahri 2016-02-20
  • 打赏
  • 举报
回复
引用 1 楼 sp1234 的回复:
先使用 console 或者 winform 的应用来测试你的集成结果。先把桌面环境下调用它、自动注册它,搞好了。
这句话没看明白,现在 已经注册成功了的,但是我 添加引用的时候 找不到这个 com组件?不懂怎么引用过去。 是不是,比如我注册 RegAsm C:\......\Interop.infosecapiLib.dll 注册成功以后 在 vs里面com里面不是显示这个Interop.infosecapiLib名称? 那怎么看这个名称?
  • 打赏
  • 举报
回复
不管哪个银行、或者跟支付宝、微信支付之类的,你应该首先找 .net 下的 sdk。如果有,直接在你的工程中引用人家的 dll 就行了,基本上不会有一星半点儿的耽误时间的事情出现。 实在不行,那么你就要先整理一下自己的思路,看看自己有没有15年前的com开发经验。优先用古老的东西来测试com组件,部署com组件。自己开发一个中间层,然后再用自己的.net 引用来调用它。 在网上找到的许多.net 平台使用 com 组件的资料,都是小儿科,都是 vs 调试环境下用来测试的。而 vs 环境对 com 做到了“每一次编译后都自动卸载旧组件、注册新组件”,可是这个能力并没有发布到 .net framework 中。 微软这点上,做得很垃圾。
  • 打赏
  • 举报
回复
先使用 console 或者 winform 的应用来测试你的集成结果。先把桌面环境下调用它、自动注册它,搞好了。 实际上现在的 asp.net/服务器IIS 下很难使用 COM,需要做许多奇怪的安全权限配置。而这些都是桌面应用完全不需要配置的。 RegAsm 是操作系统里边的(只要具有 .net framework),不是什么 vs 自带的。例如代码可以写
var ExePath = Environment.GetEnvironmentVariable("windir") + @"\Microsoft.NET\Framework\v4.0.30319\regasm.exe";
之类的就能找到它。显然你想直接在windows命令窗口调用它,那么找对路径也就行了。用不着安装 vs。

8,834

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 组件/控件开发
社区管理员
  • 组件/控件开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧