472,119 Members | 2,068 Online
Bytes | Software Development & Data Engineering Community
Post +

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 472,119 software developers and data experts.

Cannot create ActiveX component

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
1 15201
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.

Similar topics

6 posts views Thread by Steve Richter | last post: by
2 posts views Thread by Shlomi | last post: by
reply views Thread by rrotstein | last post: by
reply views Thread by leo001 | last post: by

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.