Hi Robert,
As per your suggestion, I run the network traffic analyzer and discovered that there were some
problems with the DNS on that linux box. After correcting the settings it works OK now.
Thank you for your input. I should haved taken that error message literally, but as I new
that the compatibility between windows and linux was not guaranteed, I thought
this error was just a manifest of that incompatibility.
Thank you all for the help,
ZiBi
From: "Robert Remen" <[EMAIL PROTECTED]> To: "Zbigniew Babiej" <[EMAIL PROTECTED]> CC: <[EMAIL PROTECTED]> Subject: RE: [Mono-list] Windows to Linux Remoting problem Date: Fri, 8 Oct 2004 10:39:06 +0200
Hi!
This seems to be an DNS-resolving issue. You provided no source code so i can only guess. When the runtime is marshaling object into another appdomain (from server to client), it creates an ObjRef class wich contains all relevant info to create a proxy (on client) for the marshaled object in the another appdomain. Inside this info is also an uri wich is used when invokig methods on the marshaled object. The problem ist, that this uri is generated on the server. The server uses ist hostname to create this uri. If the hostname can not be roselved on the client machine, then you get an exception when you try to invoke a method on the mashaled object.
Example:
Client calls new MXSRemoteQuote.QuoteProviderController(...) (the remoting knows that this is a client activated type, so it sends a request to the url from your client config file) Server creates an instance of MXSRemoteQuote.QuoteProviderController, generates an ObjRef for it (with unique uri for the marshaled instance, part of this uri ist the hostname eg "server-xyz") and send is as response to the client Client creates a proxy object from the ObjRef received from the server Client tryes to invoke a method on the proxy class, wich causes the remoting to try to send a request to the server, but this fails, because the hostname part of the uri ("server-xyz") can not be resolved on the client
I hope this helps you to resolve your problem
Robert
-----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Zbigniew Babiej Sent: Donnerstag, 07. Oktober 2004 15:53 To: [EMAIL PROTECTED] Subject: [Mono-list] Windows to Linux Remoting problem
Hello All, I was wondering if anyone had encountered the following problem. I have a simple remoting test program (binaries compiled with MS .NET C# (VS 2003 ver. 7.1.3088 .NET Runtime 1.1.4322 SP1). This works OK in the scenarios Windows -> Windows(both local and remote server) and Linux -> Linux (local server only, did not test remote server), but does not work in the scenarions Windows->Linux and Linux->Windows.
In the scenario Windows->Linux, the client throws the following exception when trying to activate the first object:
A) When hosted by Mono (ver. 1.0.2):
Unhandled Exception: System.Runtime.Remoting.RemotingException: No such host is known Server stack trace: in <0x000c4> System.Runtime.Remoting.Channels.Tcp.HostConnectionPool:CreateConnection () in <0x00112> System.Runtime.Remoting.Channels.Tcp.HostConnectionPool:GetConnection () in <0x00105> System.Runtime.Remoting.Channels.Tcp.TcpConnectionPool:GetConnection (string,int) in <0x00146> System.Runtime.Remoting.Channels.Tcp.TcpClientTransportSink:Process Message (System.Runtime.Remoting.Messaging.IMessage,System.Runtime.Remoting.Chan nels.ITransportHeaders,System.IO.Stream,System.Runtime.Remoting.Channels .ITransportHeaders&,System.IO.Stream&) in <0x002bc> System.Runtime.Remoting.Channels.BinaryClientFormatterSink:SyncProcessMe ssage (System.Runtime.Remoting.Messaging.IMessage)
Exception rethrown at [0]:
in <0x00583> System.Runtime.Remoting.Proxies.RealProxy:PrivateInvoke (System.Runtime.Remoting.Proxies.RealProxy,System.Runtime.Remoting.Messa ging.IMessage,System.Exception&,object[]&)
B) When hosted by .NET Error: The requested name is valid and was found in the database, but it does not have the correct associated data being resolved for Source: mscorlib Stack: Server stack trace: at System.Net.Dns.GetHostByName(String hostName) at System.Net.Dns.Resolve(String hostName) at System.Runtime.Remoting.Channels.RemoteConnection..ctor(SocketCache socketCache, String machineAndPort) at System.Runtime.Remoting.Channels.SocketCache.GetSocket(String machineAndPort) at System.Runtime.Remoting.Channels.Tcp.TcpClientTransportSink.SendRequestW it hRetry(IMessage msg, ITransportHeaders requestHeaders, Stream requestStream) at System.Runtime.Remoting.Channels.Tcp.TcpClientTransportSink.ProcessMessa ge (IMessage msg, ITransportHeaders requestHeaders, Stream requestStream, ITransportHeaders& responseHeaders, Stream& responseStream) at System.Runtime.Remoting.Channels.BinaryClientFormatterSink.SyncProcessMe ssage(IMessage msg)
Exception rethrown at [0]: at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg) at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type) at MXSRemoteQuote.QuoteProvider.AddQuoteListener(IQuoteListener listener) at MXSRemoteClient.RemoteClient.Run() Inner:
In the scenario Linux->Windows , the same errors are reported, but this time by the server.
The windows version is Win2K SP4 and the linux is Fedora Core 2. Both machines are in the same lan (switch). I tested both IP and hostname, but no success. I run other services(like ftp, samba etc.) on that Linux box and can access them from Windows clients using both IP and hostname without any problems.
Would you have any hints about how resolve this issue ? The sample binaries can be downloaded from the following link: http://members.chello.nl/z.babiej/MXSRemote.zip
Thank you in advance for your help.
Zbigniew Babiej, MarketXS.COM
Here is the server side .config:
<configuration> <system.runtime.remoting> <application> <service> <activated type="MXSRemoteQuote.QuoteProviderController, MXSRemoteQuote" /> <activated type="MXSRemoteQuote.QuoteProvider, MXSRemoteQuote" /> </service> <channels> <channel ref="tcp" port="8787"> <serverProviders> <formatter ref="binary" typeFilterLevel="Full" /> </serverProviders> <clientProviders> <formatter ref="binary" /> </clientProviders> </channel> </channels> </application> </system.runtime.remoting> </configuration>
... and the client side .config:
<configuration> <system.runtime.remoting> <application name="MXSRemoteTerminal"> <channels> <channel ref="tcp" port="0"> <clientProviders> <formatter ref="binary" /> </clientProviders> <serverProviders> <formatter ref="binary" typeFilterLevel="Full" /> </serverProviders> </channel> </channels> <client url="tcp://10.1.3.13:8787"> <activated type="MXSRemoteQuote.QuoteProviderController, MXSRemoteQuote" /> <activated type="MXSRemoteQuote.QuoteProvider, MXSRemoteQuote" /> </client> </application> </system.runtime.remoting> </configuration>
_________________________________________________________________ Tired of spam? Get advanced junk mail protection with MSN 8. http://join.msn.com/?page=features/junkmail
_______________________________________________ Mono-list maillist - [EMAIL PROTECTED] http://lists.ximian.com/mailman/listinfo/mono-list
_________________________________________________________________
Help STOP SPAM with the new MSN 8 and get 2 months FREE* http://join.msn.com/?page=features/junkmail
_______________________________________________ Mono-list maillist - [EMAIL PROTECTED] http://lists.ximian.com/mailman/listinfo/mono-list
