例外:使用CLSID {}检索组件的COM类工厂 [英] Exception: Retrieving the COM class factory for component with CLSID {}

查看:131
本文介绍了例外:使用CLSID {}检索组件的COM类工厂的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好,


我已经创建了一个VB.Net项目并编译了它,运行它,在具有32位处理器的机器上进行测试。我现在正在尝试将此项目移动到运行IIS6的64位处理器服务器上。


该项目非常有效,直到它尝试访问对项目至关重要的DLL。那时我收到以下错误:


例外:检索具有CLSID {...}的组件的COM类工厂

我已在服务器上注册了DLL。


搜索网页后,我发现可能导致错误的原因,但我不知道如何绕过它们。


第一个可能的原因是ASPNET用户没有访问此dll的权限。我不知道如何为已注册的dll设置权限。


第二个是64位环境不会运行我的32位DLL。有没有解决这个问题的方法?


提前致谢!

-Frinny

解决方案


大家好,


我创建了一个VB.Net项目并编译了它,运行它,在具有32位处理器的机器上测试它。我现在正在尝试将此项目移动到运行IIS6的64位处理器服务器上。


该项目非常有效,直到它尝试访问对项目至关重要的DLL。那时我收到以下错误:


例外:检索具有CLSID {...}的组件的COM类工厂

我已在服务器上注册了DLL。


搜索网页后,我发现可能导致错误的原因,但我不知道如何绕过它们。


第一个可能的原因是ASPNET用户没有访问此dll的权限。我不知道如何为已注册的dll设置权限。


第二个是64位环境不会运行我的32位DLL。有没有解决这个问题的方法?


提前致谢!

-Frinny



我遇到过类似问题一次,只需在引用中包含DLL即可解决错误。


在64位环境无法加载32位DLL的情况下,Visual Studio可以选择指定目标架构。但是,我从未遇到需要这种情况的情况。


这是一个COM DLL还是一个​​.NET DLL?您可能需要打开组件服务并调整权限和执行安全性。


对不起,我现在没有连接到我们的网络,所以我不能给更详细的说明,希望其他人抓住我要去的地方,并提供您需要点击的确切名称,路径和标签:P



我遇到过类似的问题一次,错误是通过在引用中简单地包含DLL来解决的。


在(非常)不太可能的情况下,64位环境无法加载32位DLL,Visual Studio有一个指定目标体系结构的选项。但是,我从未遇到需要这种情况的情况。


这是一个COM DLL还是一个​​.NET DLL?您可能需要打开组件服务并调整权限和执行安全性。


对不起,我现在没有连接到我们的网络,所以我不能给更详细的说明,希望其他人抓住我要去的地方,并且可以提供您需要点击的确切名称,路径和标签:P



通过包含DLL参考,你的意思是在项目本身?

该引用已包含在项目中,并且该项目已在32位机器上编译,并引用了此DLL。


这是一个COM DLL。我不确定什么是组件服务。我会试一试。


感谢您的帮助!


-Frinny



通过在引用中包含DLL,你的意思是在项目本身吗?

该引用已包含在项目中,并且该项目已在32位机器上编译,并引用了此DLL。


这是一个COM DLL。我不确定什么是组件服务。我会试试这个。


感谢您的帮助!


-Frinny



好​​吧我有时候是个白痴。我不知道为什么我说我不知道​​什么是组件服务...我想我只是拥有其中一个脑块...它在Windows中的那个实用程序我只使用了一个我生命中的几次到目前为止。


我昨天尝试使用组件服务来设置我的DLL的权限,但我的DLL并没有在那里列出。你知道如何让它出现吗?


我已经在COM +应用程序和DCOM配置中寻找它......它可能在其他地方吗? br />

我也尝试直接进入注册并直接在DLL上设置权限。这没有用。


对不起暂时的白痴(至少我希望这是暂时的嘿嘿)


-Frinny


Hi guys,

I''ve created a VB.Net project and have compiled it, run it, tested it on a machine that has a 32bit processor. I am now trying to move this project onto a 64bit processor server that is running IIS6.

The project works wonderfully until it tries to access a DLL that is essential to the project. At that time I am getting the following error:

Exception: Retrieving the COM class factory for component with CLSID{...}

I have registered the DLL on the server.

After searching the web I''ve found to possible causes to the error but I don''t know how to get around them.

The first possible cause is that the ASPNET user doesn''t have the privialges to access this dll. I have no idea how to set the permissions for a registered dll.

The second is that the 64bit environment will not run my 32bit DLL. Is there a way around this problem?

Thanks in advance!
-Frinny

解决方案

Hi guys,

I''ve created a VB.Net project and have compiled it, run it, tested it on a machine that has a 32bit processor. I am now trying to move this project onto a 64bit processor server that is running IIS6.

The project works wonderfully until it tries to access a DLL that is essential to the project. At that time I am getting the following error:

Exception: Retrieving the COM class factory for component with CLSID{...}

I have registered the DLL on the server.

After searching the web I''ve found to possible causes to the error but I don''t know how to get around them.

The first possible cause is that the ASPNET user doesn''t have the privialges to access this dll. I have no idea how to set the permissions for a registered dll.

The second is that the 64bit environment will not run my 32bit DLL. Is there a way around this problem?

Thanks in advance!
-Frinny


I ran into a similar problem once, and the error was solved by simply including the DLL in the references.

In the (very) unlikely case that the 64bit environment cannot load the 32bit DLL, Visual Studio has an option to specify the target architecture. I have never run into a circumstance where this is needed, however.

Is this a COM DLL or a .NET DLL? You may need to open up the Component Services and adjust permissions and execution security there.

Sorry, I''m not connected to our network right now, so I can''t give more elaborate instructions, hopefully someone else catches where I am going and can provide the exact names, paths, and tabs you need to click :P


I ran into a similar problem once, and the error was solved by simply including the DLL in the references.

In the (very) unlikely case that the 64bit environment cannot load the 32bit DLL, Visual Studio has an option to specify the target architecture. I have never run into a circumstance where this is needed, however.

Is this a COM DLL or a .NET DLL? You may need to open up the Component Services and adjust permissions and execution security there.

Sorry, I''m not connected to our network right now, so I can''t give more elaborate instructions, hopefully someone else catches where I am going and can provide the exact names, paths, and tabs you need to click :P

By including the DLL in the references, do you mean in the project itself?
The reference has already been included in the project and the project has been compiled on the 32bit machine with this DLL referenced.

It is a COM DLL. I''m not sure what a Component Service. I''ll try looking this up.

Thanks for your help!

-Frinny


By including the DLL in the references, do you mean in the project itself?
The reference has already been included in the project and the project has been compiled on the 32bit machine with this DLL referenced.

It is a COM DLL. I''m not sure what a Component Service. I''ll try looking this up.

Thanks for your help!

-Frinny


Ok I''m an idiot sometimes. I don''t know why I said I didn''t know what a Component Service was...I guess I was just having one of those brain blocks...its that utility in Windows that I''ve only used a couple of times in my life so far.

I tried to use the Component Service to set the permissions on my DLL yesterday but my DLL isn''t listed there. Do you know how to make it show up?

I''ve looked for it in both the COM+ Applications, and the DCOM Config...could it possibly be somewhere else?

I also tried going directly into the registration and setting the permissions directly on the DLL. This didn''t help.

Sorry for the temporary idiocy (at least I hope it was temporary hehe)

-Frinny


这篇关于例外:使用CLSID {}检索组件的COM类工厂的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆