By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
428,759 Members | 1,712 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 428,759 IT Pros & Developers. It's quick & easy.

Cannot create ActiveX component

P: n/a
I have a windows app. written in VB6, now we need to expose some of
its classes through a web service.

I am only able to expose the classes using late binding becasue that's
the way the original VB6 was written. I ahve already exposed some of
the original classes, and they work fine. Now, I added a new ActiveX
component to the windows app (in vb6). I am able to call it by late
binding from within the vb6 app. itself, and from a dummy vbs file
(visual basic script), but it crashes when I tried to call it from a
simple <WebMethod> in VB.NET:

<WebMethod()> Public Function PostPaymentToServer(ByVal
TCMPaymentTransactionID As Long) _
As PostPayment
Dim obj As Object
'Dim objPost As New TCMPostPayments.clsPostPaymentBDS
Dim blnRet As Boolean
Dim objRes As New PostPayment

blnRet = False
Try
obj = CreateObject("TCPostPayment.clsPostPaymentBDS")
blnRet = obj.AcceptPayment(TCMPaymentTransactionID)
'blnRet = objPost.AcceptPayment(TCMPaymentTransactionID)
If blnRet = True Then
objRes.ErrorString = ""
Else
objRes.ErrorString = obj.ErrorMessage
End If
Catch ex As Exception
objRes.ErrorString = "Error: " + ex.ToString
Finally
obj = Nothing
End Try

Return objRes
End Function

I get this:

Error: System.Exception: Cannot create ActiveX component. at
Microsoft.VisualBasic.Interaction.CreateObject(Str ing ProgId, String
ServerName) at TaxCollectionWS_BS.WebService.PostPaymentToServer( Int64
TCMPaymentTransactionID) in
C:\TaxCollectionWeb\TaxCollectionWS\TaxCollectionW S_BS\WebService.vb:line
251

any ideas why?
line 251 is the CreateObject line, from there it goes straight to
Catch ex.

The point is: I can use late binding call on this COM object from
another VB6 app, from a VBS script, but not from my web service app.
Nov 21 '05 #1
Share this Question
Share on Google+
1 Reply


P: n/a
I have exactly the same problem with my C# web service, which is attempting
to create an ActiveX-component. When I try to call it from within C# as an
ordinary application, it works fine, but when I invoke the web method from
another application, it crashes. I get a
System.Runtime.InteropServices.COMException. I have a catch-clause which
catches the COM-exception when called from within the application, but for
some reason it seems to ignore this when called from another application.
That said, there is no reason why the exception should be thrown in the first
place, as I provide the correct information to the method. I deliberately
sent it null-values from within the application just to test the
catch-clause, which then worked fine.

Did you find out why this happened? Or perhaps a work-around? I would be
very happy to hear from you if you did.

"Rocio" wrote:
I have a windows app. written in VB6, now we need to expose some of
its classes through a web service.

I am only able to expose the classes using late binding becasue that's
the way the original VB6 was written. I ahve already exposed some of
the original classes, and they work fine. Now, I added a new ActiveX
component to the windows app (in vb6). I am able to call it by late
binding from within the vb6 app. itself, and from a dummy vbs file
(visual basic script), but it crashes when I tried to call it from a
simple <WebMethod> in VB.NET:

<WebMethod()> Public Function PostPaymentToServer(ByVal
TCMPaymentTransactionID As Long) _
As PostPayment
Dim obj As Object
'Dim objPost As New TCMPostPayments.clsPostPaymentBDS
Dim blnRet As Boolean
Dim objRes As New PostPayment

blnRet = False
Try
obj = CreateObject("TCPostPayment.clsPostPaymentBDS")
blnRet = obj.AcceptPayment(TCMPaymentTransactionID)
'blnRet = objPost.AcceptPayment(TCMPaymentTransactionID)
If blnRet = True Then
objRes.ErrorString = ""
Else
objRes.ErrorString = obj.ErrorMessage
End If
Catch ex As Exception
objRes.ErrorString = "Error: " + ex.ToString
Finally
obj = Nothing
End Try

Return objRes
End Function

I get this:

Error: System.Exception: Cannot create ActiveX component. at
Microsoft.VisualBasic.Interaction.CreateObject(Str ing ProgId, String
ServerName) at TaxCollectionWS_BS.WebService.PostPaymentToServer( Int64
TCMPaymentTransactionID) in
C:\TaxCollectionWeb\TaxCollectionWS\TaxCollectionW S_BS\WebService.vb:line
251

any ideas why?
line 251 is the CreateObject line, from there it goes straight to
Catch ex.

The point is: I can use late binding call on this COM object from
another VB6 app, from a VBS script, but not from my web service app.

Nov 21 '05 #2

This discussion thread is closed

Replies have been disabled for this discussion.