- 浏览: 2162307 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (1878)
- [网站分类]ASP.NET (141)
- [网站分类]C# (80)
- [随笔分类]NET知识库 (80)
- [随笔分类]摘抄文字[非技术] (3)
- [随笔分类]养生保健 (4)
- [网站分类]读书区 (16)
- [随笔分类]赚钱 (7)
- [网站分类].NET新手区 (233)
- [随笔分类]网站 (75)
- [网站分类]企业信息化其他 (4)
- [网站分类]首页候选区 (34)
- [网站分类]转载区 (12)
- [网站分类]SQL Server (16)
- [网站分类]程序人生 (7)
- [网站分类]WinForm (2)
- [随笔分类]错误集 (12)
- [网站分类]JavaScript (3)
- [随笔分类]小说九鼎记 (69)
- [随笔分类]技术文章 (15)
- [网站分类]求职面试 (3)
- [网站分类]其他技术区 (6)
- [网站分类]非技术区 (10)
- [发布至博客园首页] (5)
- [网站分类]jQuery (6)
- [网站分类].NET精华区 (6)
- [网站分类]Html/Css (10)
- [随笔分类]加速及SEO (10)
- [网站分类]Google开发 (4)
- [随笔分类]旅游备注 (2)
- [网站分类]架构设计 (3)
- [网站分类]Linux (23)
- [随笔分类]重要注册 (3)
- [随笔分类]Linux+PHP (10)
- [网站分类]PHP (11)
- [网站分类]VS2010 (2)
- [网站分类]CLR (1)
- [网站分类]C++ (1)
- [网站分类]ASP.NET MVC (2)
- [网站分类]项目与团队管理 (1)
- [随笔分类]个人总结 (1)
- [随笔分类]问题集 (3)
- [网站分类]代码与软件发布 (1)
- [网站分类]Android开发 (1)
- [网站分类]MySQL (1)
- [网站分类]开源研究 (6)
- ddd (0)
- 好久没写blog了 (0)
- sqlserver (2)
最新评论
-
JamesLiuX:
博主,能组个队么,我是Freelancer新手。
Freelancer.com(原GAF – GetAFreelancer)帐户里的钱如何取出? -
yw10260609:
我认为在混淆前,最好把相关代码备份一下比较好,不然项目完成后, ...
DotFuscator 小记 -
日月葬花魂:
大哥 能 加我个QQ 交流一下嘛 ?51264722 我Q ...
web应用程序和Web网站区别 -
iaimg:
我想问下嵌入delphi写的程序总是出现窗体后面感觉有个主窗体 ...
C#自定义控件:WinForm将其它应用程序窗体嵌入自己内部 -
iaimg:
代码地址下不了啊!
C#自定义控件:WinForm将其它应用程序窗体嵌入自己内部
1.ask:
Greetings,
I have a VB.NET application that references a 3rd party Com component. The file is Interop.WINTSRRLIB.dll. My VB.NET application has a project reference to the COM comonent which lives in the directory: C:\WaveTracker.
The application runs fine. When I sent it to my customer, he installed in on his desktop machine. It runs fine. Then he copied all of the application files (which live in C:\WaveTracker) to his laptop. However, on his laptop, he gets the error:
"System.Runtime.InteropServices.COMException (0x80040154). Retrieving the COM class factory for component xxxx failed due to the following error: 80040154"
The customer swears he has the .NET 2.0 Framework installed properly on his laptop. Any ideas on how I can get over this problem???
Kind Regards,
2.ans:
Make sure you look in the registry of a PC on which your app works. Don't do a search, just look through the keys in HKCR\CLSID for the GUID, they are sorted alphabetically. The fact that you can't find a DLL that can be registered with regsvr32 is a strange problem. If might live in another folder, c:\windows\system32 perhaps. Look at the properties of the WinTSRRapiLib reference in your project. Also, the component may itself use another ActiveX component that requires registration. Like the VB6 runtime files for example.
Another way to debug this problem is to use the RegMon utility, available for free at www.sysinternals.com. It shows you how your app uses the registry. Run it on yours and run it on the customer's and compare the two.
2.2
The COM component needs to be registered on his laptop. Start + Run, regsvr32 c:\wavetracker\componentname.dll
2.3
I had my customer try this (register thedll with regsrvr32) and he reports to me that the system responds with a message that says that the file was loaded but the entry point could not be found and therefore was not registered. The application still aborts with the same 80040154 error.
I can find no evidence that I had registered the dll on my system (with regsrvr32), nor does my customer remember registering it on his desktop system (where the application works and accesses the dll correctly).
So, I guess I am somewhat flummoxed here...any further advice?
Tx,
2.4
Sounds like he was trying to register the wrong DLL. If it is a COM component, it should allow itself to be registered. To find out what DLL you really need to be registered, pay attention to the GUID reported in the error message. It will look something like "{750fdf0e-2a26-11d1-a3ea-080036587f03}". Start Regedit.exe on your PC and navigate to HKCR\CLSID. Find the GUID that was reported in the error message. Open the key and look for the value of 'InProcServer32', it should point to the DLL.
ReplyQuote
Thursday, September 28, 2006 10:22 PMScott Masters
0Sign In to VoteThe GUID reported in the 80040154 message does not show in in a registry search. When attempting to register the dll, the error message is that the DLLRegistryServer entry point cannot be found.
The customer allowed me to access the problem system remotely...there is only one copy of the dll "interop.wintssrapilib.dll" on his system and it is the correct version. In fact, I transferred all of the application files from my system directly to his sytsem and the error persists.
Also, I have a few small dLLs in the application that I wrote....I have never had to 'register' them to have the application work. Furthermore, when I do attempt to register them (just to shed some light on this problem), I (again) get the error that the DllRegister Server entry point cannot be found.
I think this may be an instance of the dll-hell I have always heard about. Any clue as to what is happening?
Tx
Scott
ReplyQuote
Friday, September 29, 2006 12:55 AMnobugzMVP, Moderator
0Sign In to VoteMake sure you look in the registry of a PC on which your app works. Don't do a search, just look through the keys in HKCR\CLSID for the GUID, they are sorted alphabetically. The fact that you can't find a DLL that can be registered with regsvr32 is a strange problem. If might live in another folder, c:\windows\system32 perhaps. Look at the properties of the WinTSRRapiLib reference in your project. Also, the component may itself use another ActiveX component that requires registration. Like the VB6 runtime files for example.
Another way to debug this problem is to use the RegMon utility, available for free at www.sysinternals.com. It shows you how your app uses the registry. Run it on yours and run it on the customer's and compare the two.
ReplyQuote
Friday, September 29, 2006 2:51 AMScott Masters
0Sign In to Votei went to www.sysinternals.com and downloaded a few utilities that led me to the problem...'listdlls' and 'procexp' were very useful. The problem was simply that the 3rd party dll required other dlls that were not on the system. So I installed the required (other) dlls and everything is fine.
Thanks for your help and recommendations.
Scott
ReplyQuote
Wednesday, November 01, 2006 4:44 PMPabloDFT
0Sign In to VoteHi Scott, could you please tell me which utilities you downloaded from www.sysinternals.com, how can i find them at this page?
I have the save trouble with a web service
Thanks for your help
ReplyQuote
Wednesday, May 21, 2008 9:43 PMtngm
0Sign In to VoteYou need to register the com class on the web server too. Run .reg and .bat of your DLL on the web server.
ReplyQuote
Monday, September 01, 2008 5:16 AMIntelligenceIndia
0Sign In to VoteHello Friend,
the file you reffered to register "interop.wintssrapilib.dll" is only the wrapper fro your original file.
You can't register this wrapper file with regsvr32.exe. You need the original component file "wintssrapilib.dll".
So you copy the file "wintssrapilib.dll" to C:\WaveTracker and issue the command "regsvr32 C:\WaveTracker\wintssrapilib.dll".
I hope your problem solved..
Senthil Kumar D,
sd_senthilkumar@hotmail.com
ReplyQuote
Tuesday, September 16, 2008 1:31 PMLightGuy
0Sign In to Voteit looks like you deinstalled some component and it unregisted your dll. Simply reinstall it or fire regsvr32
ReplyQuote
Friday, November 14, 2008 12:41 AMmsp115
0Sign In to VoteI'm running a 32-bit custom app on 64-bit windows xp sp2. It starts fine, but when it tries to connect to another app (also 32-bit) I get the problem referenced here (80040154 retreiving COM Class factory). So, I went to the GUID directory for for 32-bit procs in a 64-bit architecture (HKCR\Wow6432Node\CLSID) and found the GUID referenced in the error msg. Looked at the proc and then regsitered it with regsrv32. Registration went successfully.
However, I still get the same error when running the program and trying to connect. Any addt'l thoughts on this?
Edited bymsp115 Friday, November 14, 2008 12:43 AM
ReplyQuote
Friday, November 14, 2008 1:00 AMnobugzMVP, Moderator
0Sign In to VoteIt sounds like your app is running in 64-bit mode. That would be automatic if it is a .NET app. Use Corflags.exe or Build + Platform Target to force it to run in 32-bit mode.
--------------------------------------------------------------------------------
Hans Passant.
ReplyQuote
Monday, November 17, 2008 4:09 PMmsp115
0Sign In to VoteCorflags worked like a charm. .NET was indeed trying to force it to run as a 64bit app. Running corflags with the /32bit+ switch modified the .exe properties and allowed for the app to start and connect without incident. Thanks so much - appreciate your quick (and accurate) response!
Mike
Edited bymsp115 Monday, November 17, 2008 7:41 PM
ReplyQuote
Tuesday, April 14, 2009 12:01 PMRajivYK
0Sign In to VotePlease register the dll's and restart IIS to fix the Issue.
ReplyQuote
Saturday, September 26, 2009 11:33 AMmessengr
0Sign In to Vote80040154
Proposed As Answer bymessengr Saturday, September 26, 2009 11:33 AM
ReplyQuote
Tuesday, December 01, 2009 9:51 AMFortyEightK
1Sign In to VoteIf you're getting the error within a website I managed to fix this error by going into IIS and going into the Advanced Settings of the Application Pool the website is using. There is an option to "Enable 32-bit Applications" which will probably be set to False. Set it to True and restart the website.
ReplyQuote
Tuesday, December 15, 2009 3:50 PMmtthwbrnd
0Sign In to VoteI know it is not constructive, but I just have to say it. After a couple of frustrating days struggling with this needless, pointless issue. This is a ridiculous way of doing things. I am struggling to do all this stupid stuff with DLL within the .NET/COM framework. It is so complicated it could be a monty python sketch. Can't you guys at Microsoft possibly, ever, make something that just works?
I mean, why the ____ should I need to personally worry about the registry? This is crazy. Can't you see how crazy this is?
Proposed As Answer byasadim 16 hours 2 minutes ago
ReplyQuote
Wednesday, December 23, 2009 6:43 AMjeneesh k. velayudhan
0Sign In to VoteHi...
If you have enabled the option "Enable 32-bit Applications". Can you execute the applications
which are developed in 64 bit ? I think, that is not possible. So, we willn't get the advantage of
64 bit, am i right ?
Also, how will you enable the "Enable 32-bit Applications" ? I dont find any options in IIS application pool.
I have enabled it through command prompt.
ReplyQuote
Sunday, January 10, 2010 11:35 AMPeter Holmdahl
0Sign In to VoteI have been building my App for 'Any CPU' and that has worked fine together with the COM object the App denpend upon. Then I installed a 64-bit OS and continues to build against Any CPU and got this error code when trying to use the COM object. It turned out I had to build against x86 to still use the COM object. But that shouldn't be a problem (as long as I can run it on my x64 OS (which I can)).
Just a note...
ReplyQuote
Thursday, February 04, 2010 10:29 PMpacmantab
0Sign In to VoteIn some cases, certain DLLs (like capicom) cannot be placed within the Inetpub folder. If you are still having trouble with this error, try placing, and registering, the DLL somewhere on the C:\ drive (i.e., C:\SharedDLLs). That worked for me.
ReplyQuote
Friday, March 12, 2010 12:47 AMPranay_Msbuild
0Sign In to VoteI have this same issue. I have an application which was build with 'Any CPU'. This application seemed to be working fine. I moved all my code from my desktop to my laptop and I started getting this error. The only difference between my laptop and desktop is the Operating System. Both are using 32 bit version on OS and all the .net versions are same. the only difference one is using XP and the other Windows 7. I tried finding the CLSID in regedit, but this is not present. Any other ideas as to how can i fix this??
ReplyQuote
Friday, March 12, 2010 4:07 PMpacmantab
0Sign In to VoteMight depend on the version of VS you are running. A couple of things to try:
- Re-install the framework and restart IIS
- Try publishing the solution (if its VS2008) and setting up a virtual directory via that.
ReplyQuote
Wednesday, March 24, 2010 10:48 PMasadim
0Sign In to VoteI know it is not constructive, but I just have to say it. After a couple of frustrating days struggling with this needless, pointless issue. This is a ridiculous way of doing things. I am struggling to do all this stupid stuff with DLL within the .NET/COM framework. It is so complicated it could be a monty python sketch. Can't you guys at Microsoft possibly, ever, make something that just works?
I mean, why the ____ should I need to personally worry about the registry? This is crazy. Can't you see how crazy this is?
I share your anxiety lol
发表评论
-
where T:new() 是什么意思
2014-04-18 09:26 1450where T:new() 是什么意思 经常看到方法后面 ... -
好久没写blog了
2012-05-21 18:43 2好久没写blog了 -
test
2011-03-19 09:48 814testddddddddddd -
QQ自动发日志分析
2011-03-10 18:15 1261首先列举比较重要的问 ... -
test
2011-02-23 18:03 803test -
test
2011-02-23 17:53 873test -
为啥cnblogs的数据不能导了
2011-02-23 11:03 905为啥cnblogs的数据不能导了内容 -
如何保护.net中的dll文件(防破解、反编译)
2010-07-30 00:28 1485.net是一种建立在虚拟机上执行的语言,它直接生成 MSIL ... -
提搞网站访问速度可做哪些优化
2010-08-08 15:30 1116一、 服务器优化 ... -
ASP.NET(c#)如何判断浏览器是否支持cookies
2010-07-29 09:33 1710实例代码: 下面是写cookie ... -
N点虚拟主机管理系统(For Windows2003/2008)功能及介绍
2010-04-09 11:23 2258N点虚拟主机管理系统是 ... -
使用c#+(datagrid控件)编辑xml文件
2010-04-06 09:13 1161对xml文件的记录进行删除,修改,或增加新记录。 利用了d ... -
HTTP代理模块(HTTP Proxy)
2010-04-04 10:19 3045HTTP代理模块(HTTP Proxy ... -
petshop4.0 详解之二(数据访问层之数据库访问设计)
2010-03-27 11:08 1066在系列一中,我从整体上分析了PetShop的架构设计,并提及了 ... -
分享十五个最佳jQuery幻灯插件和教程
2010-03-25 09:17 2005<p>在网站前端中使用jQuery库已经变得越来越 ... -
20个软件开发常用设计文档大全下载
2009-08-27 10:22 962搜集了一些软件开发的常用文档,分享给大家 总下载地址: h ... -
asp.net 在线 mp3,wma, avi
2009-09-04 13:58 9281.前台js<script type="tex ... -
sql db link string
2009-09-06 21:52 976SQL Server ODBC Standar ... -
ASP.Net2.0小技巧 保持滚动条的位置 焦点移动到某个控件 $符号轻松的使用FindControl
2009-09-11 11:05 1293您可能不知道的ASP.Net2.0 ... -
总结@ 在C# 中的用法
2009-09-11 12:00 840总结@ 在C# 中的用法 一 字符串中的用法 ...
相关推荐
data retreiving -+ | +cut_files.py 删除冗余的训练图片素材 | +get_images.py 获取不同人名对应的图片,并将其保存 | +get_names.py 获取当前女优排名的名字 list | +googl_api.py 通过 Google API 获取...
data retreiving -+ | +cut_files.py 删除冗余的训练图片素材 | +get_images.py 获取不同人名对应的图片,并将其保存 | +get_names.py 获取当前女优排名的名字 list | +googl_api.py 通过 Google API 获取...
这是用于存储和retreiving有用对象流。安装 npm install skeyma例子对对象使用 skeyma import skeyma from "skeyma"const template = "${forumId}/${postId}/${commentId}"const { parse , serialize } = skeyma ( ...
特征完整的API集成Nuapi的制作和Retreiving吃活动。 从美国农业部的数据库示例视图控制器和故事为创建用户界面可选成分的营养数据扩展获得营养历史报告和分析简单使用下载框架,包括到您的项目(查看我们为建设静态...
data retreiving -+ | +cut_files.py <-- 删除冗余的训练图片素材 | +get_images.py <-- 获取不同人名对应的图片,并将其保存 | +get_names.py <-- 获取当前女优排名的名字 list | +googl_api.py &...