Remoting e il server con due schede di rete

Published 30 September 10 1:5 PM | Tommaso Caldarola

E’ successo che per un cliente si era nella seguente situazione:

Ip client: 192.168.1.100

Ip1 server: 192.168.1.14
Ip2 server: 195.26.xxx.xxx

La stringa di connessione presente nella configurazione del client puntava a 192.168.1.14 / port
Il client pur riuscendo a raggiungere il server non riusciva a connettersi per via della comunicazione duplex che viene stabilita sin dalla prima richiesta, infatti nell'eccezione veniva riportato il seguente messaggio:


28/09/2010 09:28:39.741 Devil INFO Connecting to

tcp://192.168.1.14:7014/service.rem [^]
28/09/2010 09:28:39.741 Devil INFO Logging On for user:Administrator
EXCEPTION
_________
Type : System.Net.Sockets.SocketException
Message : No connection could be made because the target machine actively refused it 195.26.xxx.xxx:7014
ErrorCode=10061
SocketErrorCode=ConnectionRefused
NativeErrorCode=10061
Data=(empty list)
InnerException=(null)
TargetSite=Void HandleReturnMessage(System.Runtime.Remoting.Messaging.IMessage, System.Runtime.Remoting.Messaging.IMessage)

Tralasciando la possibilità di capire il problema attraverso personale IT agendo sulle tabelle di routing e premesso che il sistema non prevedeva l’accesso se non esclusivamente in ambito LAN (no VPN ad esempio) è stato sufficiente inserire nella configurazione Remoting dell’Application server l’informazione statica dell’IP attraverso l’attributo machineName.

   1: <system.runtime.remoting>
   2:     <application>
   3:       <channels>
   4:         <channel secure="false" ref="tcp" port="7014" useDefaultCredentials="true" name="Server Channel" machineName="192.168.1.14">

In questo modo forziamo l’infrastruttura Remoting a notificare al chiamante che l’IP con cui comunicare è solo e sempre quello definito in configurazione. Senza questa impostazione la connessione sul primo canale veniva stabilita correttamente ma la risposta (callback) sul secondo avveniva attraverso il secondo IP.

Filed under: ,