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

Reply via email to