检索 COM 类工厂中 CLSID 为 {***} 的组件时失败,急~!~!~!~

stromboy007 2009-08-21 02:58:54
检索 COM 类工厂中 CLSID 为 {4ACBF60A-D77D-4B66-89E3-5BE389817865} 的组件时失败,原因是出现以下错误: 80040111。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.Runtime.InteropServices.COMException: 检索 COM 类工厂中 CLSID 为 {4ACBF60A-D77D-4B66-89E3-5BE389817865} 的组件时失败,原因是出现以下错误: 80040111。

源错误:


行 166: Dim adoRecordset As New ADODB.Recordset
行 167:
行 168: objGenFn = Server.CreateObject("SMASWebCtrl.GeneralFuctionClass")
行 169: strConnStr = objGenFn.GetConnectionString
行 170:


源文件: C:\WebEmployment\Job\JobAnalysis.aspx.vb 行: 168

堆栈跟踪:


[COMException (0x80040111): 检索 COM 类工厂中 CLSID 为 {4ACBF60A-D77D-4B66-89E3-5BE389817865} 的组件时失败,原因是出现以下错误: 80040111。]
System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandle& ctor, Boolean& bNeedSecurityCheck) +0
System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean fillCache) +86
System.RuntimeType.CreateInstanceImpl(Boolean publicOnly, Boolean skipVisibilityChecks, Boolean fillCache) +230
System.Activator.CreateInstance(Type type, Boolean nonPublic) +67
System.Activator.CreateInstance(Type type) +6
System.Web.HttpServerUtility.CreateObject(String progID) +122
Job_JobAnalysis.BindpayrollTable(String SearchItem, String SortItem) in C:\WebEmployment\Job\JobAnalysis.aspx.vb:168
Job_JobAnalysis.BindPayroll() in C:\WebEmployment\Job\JobAnalysis.aspx.vb:101
Job_JobAnalysis.Button1_Click(Object sender, EventArgs e) in C:\WebEmployment\Job\JobAnalysis.aspx.vb:362
System.Web.UI.WebControls.Button.OnClick(EventArgs e) +111
System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +110
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +36
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1565

请问这是什么原因啊,我已经在bin目录下引用了Interop.SMASWebCtrl.dll 但是在程序中掉用
objGenFn = Server.CreateObject("SMASWebCtrl.GeneralFuctionClass")
strConnStr = objGenFn.GetConnectionString
就出现了上面的错误~~~!~!~
...全文
6408 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
杜隆胤 2009-08-30
  • 打赏
  • 举报
回复
你应该先注册然后再使用。
注册方法:
regsvr32 component_name.dll
例如:regsvr32 c:\temp\MyCom.dll
SK_Aqi 2009-08-21
  • 打赏
  • 举报
回复
学习了.
Forrest23 2009-08-21
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 stromboy007 的回复:]
谢谢  问题以解决 
  是因为我的系统是装在E盘,但在我写的注册文件bat里调用的dll路径指向的是C盘,所以没有注册成功出错。
[/Quote]

原来如此
stromboy007 2009-08-21
  • 打赏
  • 举报
回复
谢谢 问题以解决
是因为我的系统是装在E盘,但在我写的注册文件bat里调用的dll路径指向的是C盘,所以没有注册成功出错。
Forrest23 2009-08-21
  • 打赏
  • 举报
回复

'这样引用呢?
Declare Function 函数名 Lib "SMASWebCtrl.dll" (参数) As 类型
stromboy007 2009-08-21
  • 打赏
  • 举报
回复
  Dim adoConnection As New ADODB.Connection
Dim objGenFn As Object
Dim strConnStr As Object
Dim DateStart As Date
Dim DateEnd As Date
Dim EmpNo As String

Dim objAttn As Object
Dim adoRecordset As New ADODB.Recordset
'Dim objGenFn As New SMASWebCtrl.GeneralFuctionClass


objGenFn = Server.CreateObject("SMASWebCtrl.GeneralFuctionClass")
strConnStr = objGenFn.GetConnectionString


adoConnection = Server.CreateObject("ADODB.Connection")
adoConnection.CursorLocation = 3
adoConnection.ConnectionString = strConnStr
adoConnection.Open()
'Dim objAttn As New SMASWebCtrl.AttendanceClass
objAttn = Server.CreateObject("SMASWebCtrl.AttendanceClass")

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
DateStart = DateSerial(2002, 11, 1) 'Date From
DateEnd = DateSerial(2002, 11, 30) 'Date To
EmpNo = "1203002" 'Employee No
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
stromboy007 2009-08-21
  • 打赏
  • 举报
回复
搞不懂为什么 这个DLL是别人提供的,在他们那边是vb.net2005做测试没问题,但是我这边是2008 调用就出现了上面的错误。。。。。。。。。郁闷啊·~~~~
stromboy007 2009-08-21
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 hdt 的回复:]
1, q: 注册没?
  a:去注册----我有去注册 但提示没有找到DllRegisterServer输入点 无法注册

2,q:有调用权限没?
  a:通过组件服务调整权限---我已经在“开始”-“控制面板”-“管理工具”-“组件服务”-“计算机”-“我的电脑”-“DCOM”选项,选择其下的“IIS ADMIN SERVICE”,右健选择“属性”,找到“安全”,在“启动和激活权限”中编辑“自定义”,添加帐号“IWAM_*****”,给该帐号赋予“本地启动 ”和“本地激活”的权限,重新启动IIS(点“开始”-“运行”-“CMD”,点确定,然后运行IISRESET)
[/Quote]
真相重于对错 2009-08-21
  • 打赏
  • 举报
回复
1, q: 注册没?
a:去注册

2,q:有调用权限没?
a:通过组件服务调整权限

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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