<DIV>help!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!:</DIV>  <DIV>i am using omniORB4.1.1 under msvc++6.0 + sp6,i test the example(echo),client&nbsp;execute hello fuction succefully&nbsp;,when client&nbsp;exit&nbsp;&nbsp;,then server display the exception below,but server&nbsp;does not exit and run continue:</DIV>  <DIV>First-chance exception in TestCorba.exe (KERNEL32.DLL): 0xE06D7363: Microsoft C++ Exception.</DIV>  <DIV>my program is below:</DIV>  <DIV>*********server***********</DIV>  <DIV>&nbsp;char* Echo_i::echoString(const char* mesg)<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; char RetStr[256];<BR>&nbsp;&nbsp; strcpy(RetStr,mesg);<BR>&nbsp;&nbsp; strcat(RetStr,"--from Server");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //return RetStr;<BR>&nbsp;&nbsp; return CORBA::string_dup(RetStr);<BR>}</DIV>  <DIV>int &nbsp;main(int argc, char** argv)</DIV>  <DIV>&nbsp;const char* options[][2] = { { "endPoint", "giop:tcp::1234" },{ 0, 0 } };</DIV> 
 <DIV>&nbsp;try <BR>&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp; CORBA::ORB_var orb = CORBA::ORB_init(argc,&nbsp; </DIV>  <DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; argv,"omniORB4",options);//,options</DIV>  <DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CORBA::Object_var obj = orb-&gt;resolve_initial_references("omniINSPOA");//RootPOA<BR>&nbsp;&nbsp;&nbsp;&nbsp; PortableServer::POA_var poa = PortableServer::POA::_narrow(obj);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Echo_i* myecho = new Echo_i();<BR>&nbsp;&nbsp;&nbsp;&nbsp; PortableServer::ObjectId_var oid = PortableServer::string_to_ObjectId("EchoService");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp; poa-&gt;activate_object_with_id(oid, myecho);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp; obj = myecho-&gt;_this();</DIV>  <DIV>&nbsp;&nbsp;&nbsp;&nbsp; CORBA::String_var sior(orb-&gt;object_to_string(obj));<BR>&nbsp;&nbsp;&nbsp;&nbsp; cerr &lt;&lt; "" &lt;&lt;
 (char*)sior &lt;&lt; "" &lt;&lt; endl;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp; myecho-&gt;_remove_ref();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp; PortableServer::POAManager_var pman = poa-&gt;the_POAManager();<BR>&nbsp;&nbsp;&nbsp;&nbsp; pman-&gt;activate();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp; orb-&gt;run();<BR>&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp; catch(CORBA::SystemException&amp;) <BR>&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cerr &lt;&lt; "Caught CORBA::SystemException." &lt;&lt; endl;<BR>&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; catch(CORBA::Exception&amp;) <BR>&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cerr &lt;&lt; "Caught CORBA::Exception." &lt;&lt; endl;<BR>&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 catch(omniORB::fatalException&amp; fe) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cerr &lt;&lt; "Caught omniORB::fatalException:" &lt;&lt; endl;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cerr &lt;&lt; "&nbsp;&nbsp; file: " &lt;&lt; fe.file() &lt;&lt; endl;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cerr &lt;&lt; "&nbsp;&nbsp; line: " &lt;&lt; fe.line() &lt;&lt; endl;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cerr &lt;&lt; "&nbsp;&nbsp; mesg: " &lt;&lt; fe.errmsg() &lt;&lt; endl;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; catch(...) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cerr &lt;&lt; "Caught unknown exception." &lt;&lt;
 endl;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return 0;</DIV>  <DIV>}</DIV>  <DIV><BR>****client**********</DIV>  <DIV>int&nbsp;main(int argc, char** argv)</DIV>  <DIV>&nbsp; try {<BR>&nbsp;&nbsp; CORBA::ORB_var orb = CORBA::ORB_init(argc, argv,"omniORB4");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp; CORBA::Object_var obj = orb-&gt;string_to_object ("corbaloc:iiop:172.20.56.141:1234/EchoService");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp; Echo_var echoref = Echo::_narrow(obj);&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp; if( CORBA::is_nil(echoref) ) <BR>&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp; cerr &lt;&lt; "Can't narrow reference to type Echo (or it was nil)." &lt;&lt; endl;<BR>&nbsp;&nbsp;&nbsp; return 1;<BR>&nbsp;&nbsp; }<BR>&nbsp;&nbsp; <BR>&nbsp;&nbsp; //&nbsp; for (CORBA::ULong count=0; count&lt;10; count++) <BR>&nbsp;&nbsp;&nbsp; hello(echoref);&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;
 orb-&gt;destroy();<BR>&nbsp; }<BR>&nbsp; catch(CORBA::TRANSIENT&amp;) {<BR>&nbsp;&nbsp;&nbsp; cerr &lt;&lt; "Caught system exception TRANSIENT -- unable to contact the "<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;&lt; "server." &lt;&lt; endl;<BR>&nbsp; }<BR>&nbsp; catch(CORBA::SystemException&amp; ex) {<BR>&nbsp;&nbsp;&nbsp; cerr &lt;&lt; "Caught a CORBA::" &lt;&lt; ex._name() &lt;&lt; endl;<BR>&nbsp; }<BR>&nbsp; catch(CORBA::Exception&amp; ex) {<BR>&nbsp;&nbsp;&nbsp; cerr &lt;&lt; "Caught CORBA::Exception: " &lt;&lt; ex._name() &lt;&lt; endl;<BR>&nbsp; }<BR>&nbsp; catch(omniORB::fatalException&amp; fe) {<BR>&nbsp;&nbsp;&nbsp; cerr &lt;&lt; "Caught omniORB::fatalException:" &lt;&lt; endl;<BR>&nbsp;&nbsp;&nbsp; cerr &lt;&lt; "&nbsp; file: " &lt;&lt; fe.file() &lt;&lt; endl;<BR>&nbsp;&nbsp;&nbsp; cerr &lt;&lt; "&nbsp; line: " &lt;&lt; fe.line() &lt;&lt; endl;<BR>&nbsp;&nbsp;&nbsp; cerr &lt;&lt; "&nbsp; mesg: " &lt;&lt; fe.errmsg() &lt;&lt; endl;<BR>&nbsp;
 }<BR>&nbsp; return 0;<BR>}</DIV><p>&#32;


      <hr size=1><a href="http://cn.mail.yahoo.com/gc/index.html?entry=5&souce=mail_mailletter_tagline">ÑÅ»¢ÓÊÏä´«µÝÐÂÄê×£¸££¬¸öÐԺؿ¨ËÍÇ×Åó£¡</a>