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.