![]() | |
![]() |
| | Thread Tools | Search this Thread | Display Modes |
#1
| |||
| |||
|
#2
| |||
| |||
|
|
ATTN: COM Experts I have been getting this error message and have post a few times but still don't have any answers and I can't find any on the www. *** Message: The callee (server [not server application]) is not available and disappeared; all connections are invalid. The call may have executed. (Exception from HRESULT: 0x80010007 (RPC_E_SERVER_DIED)) Note: This appears to happen when raising an event from VB.net 2005 object to a COM (VB6) client application. |
|
Please help me understand this cause and solve it! TIA! JerryM |
#3
| |||
| |||
|
#4
| ||||||
| ||||||
|
|
Ben, thanks for responding!! A B C _____VB6___ _________________same dll assembly_______________ ************ **************** ****************** * VB6 Client * -----> * .net Wrapper * ---------> * .net class with main * * App * * object to expose * * code. * ************ * to COM VB * ****************** *************** ************ ******************** ******************** * * * Event from main code * * <- Event Raised here * * * * rcvd event and * * * * * * reraises another event * * * * * * to VB6 app and * * * * * * At this point the error * * * * * * occurs goes to a error * * * * * * catch block. * * * ************ ******************** ********************* I don't understand how switching roles occurs. I am only sending events from one .net wrapper class to the VB6 application. My VB6 application contains an instantance of the .net object (dll) and is |
|
receiving events from the object to VB6. As far as |
|
I know I'm not destorying any of my objects. My main object in VB6 is created and I have a global variable holding it until the application ends. This is an RPC error and I'm not doing anything with the object like setting it to Nothing in VB. I am settting another object to it like Set WM = WMGirth then maybe later Set WM = WMSeal. WMGirth and WMSeal are my main objects in |
|
VB6 but they are the objects from may .net assembly that are exposed to COM using COM InterOP attributes. The objects in VB6 are declared using With Events. I have other events that are being raised with no issues. Originally the event seem to work fine using buttons. But now I'm trying to system testing using Timers and PLC interfaces that may be using cpu time and interrupts, etc... |
|
Now I'm getting the error message in debug mode and when not in debug (attached) events seem to take a long time. This happens right at the point I'm raising the event to COM from my .net wrapper class that has the COM attributes. I'm using traditional good programming techiques in VB6 and should be doing what I need to on the .net side. I just don't understand how you raise an event from .net to COM and it blows up??? One other thing the point where I raise the event in my main code is in an event handler from a TCP/IP communication object (.net). When this error happens I handle the error to record it and then the original event handler is called again. I'm sorry I'm really lost. The VB6 client application is creating these WMGrith and WMSeal object using early binding and I'm not destorying them |
|
until the end. I believe the .net object is running in-process but I'm not sure. When you embed a .net object in VB6 does it not run in-process? JerryM |
#5
| |||
| |||
|
#6
| |||
| |||
|
#7
| |||
| |||
|
![]() |
| Thread Tools | Search this Thread |
| Display Modes | |
| |