https://bugzilla.novell.com/show_bug.cgi?id=353491


           Summary: Calling an explicitly implemented interface method on
                    remoted object causes RemotingException in client
           Product: Mono: Runtime
           Version: 1.2.5
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: Normal
          Priority: P5 - None
         Component: remoting
        AssignedTo: [EMAIL PROTECTED]
        ReportedBy: [EMAIL PROTECTED]
         QAContact: [email protected]
          Found By: Development


Created an attachment (id=190320)
 --> (https://bugzilla.novell.com/attachment.cgi?id=190320)
Repro

There is a problem when calling explicitly implemented interface methods
through remoting. For example we have an interface IRemoteObject shared between
the server and client. The server registers a typed implementing this interface
explicitly. When the client attempts to call any methods on this interface, the
client throws the following exception:

Unhandled Exception: System.Runtime.Remoting.RemotingException: Tcp transport
error.

Server stack trace: 
  at System.Runtime.Remoting.Channels.Tcp.TcpMessageIO.ReceiveMessageStatus
(System.IO.Stream networkStream, System.Byte[] buffer) [0x00000] 
  at System.Runtime.Remoting.Channels.Tcp.TcpClientTransportSink.ProcessMessage
(IMessage msg, ITransportHeaders requestHeaders, System.IO.Stream
requestStream, ITransportHeaders& responseHeaders, System.IO.Stream&
responseStream) [0x00000] 
  at
System.Runtime.Remoting.Channels.BinaryClientFormatterSink.SyncProcessMessage
(IMessage msg) [0x00000] 

Exception rethrown at [0]: 
 ---> System.Runtime.Remoting.RemotingException: Connection closed
  at System.Runtime.Remoting.Channels.Tcp.TcpMessageIO.StreamRead
(System.IO.Stream networkStream, System.Byte[] buffer, Int32 count) [0x00000] 
  at System.Runtime.Remoting.Channels.Tcp.TcpMessageIO.ReceiveMessageStatus
(System.IO.Stream networkStream, System.Byte[] buffer) [0x00000] --- End of
inner exception stack trace ---

  at System.Runtime.Remoting.Channels.Tcp.TcpMessageIO.ReceiveMessageStatus
(System.IO.Stream networkStream, System.Byte[] buffer) [0x00000] 
  at System.Runtime.Remoting.Channels.Tcp.TcpClientTransportSink.ProcessMessage
(IMessage msg, ITransportHeaders requestHeaders, System.IO.Stream
requestStream, ITransportHeaders& responseHeaders, System.IO.Stream&
responseStream) [0x00000] 
  at
System.Runtime.Remoting.Channels.BinaryClientFormatterSink.SyncProcessMessage
(IMessage msg) [0x00000] 

and the server does not receive the method call.

Implementing the method implicitly does not cause the same problem.

I have attached a example application demonstrating working and broken
behaviours. Running the same code under Windows and the Microsoft CLR this does
not happen and the method call executes without error in both cases.


-- 
Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
_______________________________________________
mono-bugs maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-bugs

Reply via email to