J'ai une application que j'ai écrite qui fonctionne bien depuis 4 ans. Hier, ils ont déplacé tous leurs serveurs et installé environ 60 mises à jour Windows en attente, et maintenant il est cassé. L'application utilise Remoting de mettre à jour des informations sur un autre serveur (10.0.5.230), mais lorsque je tente de créer mon objet distant, je reçois l'exception suivante: Error message: No connection could be made because the target machine actively refused it 127.0.0.1:9091 http://img692.imageshack.us/img692/8104/screenshot1ay.png.NET Remoting se connecter au mauvais hôte
Notez qu'il tente de se connecter à 127,0 .0.1, pas le serveur approprié. Le serveur (10.0.5.230) écoute le port 9091 comme il se doit. Cette même erreur se produit sur les trois serveurs Terminal Server sur lesquels cette application est installée.
Voici le code qui enregistre l'objet télécommandables:
public static void RegisterClient()
{
string lServer;
RegistryKey lKey = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Shoreline Teleworks\\ShoreWare Client");
if (lKey == null)
throw new InvalidOperationException("Could not find Shoretel Call Manager");
object lVal = lKey.GetValue("Server");
if (lVal == null)
throw new InvalidOperationException("Shoretel Call Manager did not specify a server name");
lServer = lVal.ToString();
IDictionary props = new Hashtable();
props["port"] = 0;
string s = System.Guid.NewGuid().ToString();
props["name"] = s;
ChannelServices.RegisterChannel(new TcpClientChannel(props, null), false);
RemotingConfiguration.RegisterActivatedClientType(typeof(UpdateClient),
"tcp://" + lServer + ":" + S_REMOTING_PORT + "/");
RemotingConfiguration.RegisterActivatedClientType(typeof(Playback),
"tcp://" + lServer + ":" + S_REMOTING_PORT + "/");
}
Voici le code qui appelle l'objet télécommandables:
UpdateClient lUpdater = new UpdateClient(Settings.CurrentSettings.Extension.ToString());
lUpdater.SetAgentState(false);
J'ai vérifié que l'URI suivante est passé à RegisterActivatedClientType: "tcp: //10.0.5.230: 9091 /" Pourquoi cette application essaie-t-elle de se connecter au mauvais serveur?
Informations complémentaires:
Le client ne se connecte au serveur: Il envoie un message ConstructionCall au serveur et reçoit en retour un ConstructionResponse. Cette ConstructionResponse contient un ObjRef qui fait référence à l'URI tcp: //127.0.0.1: 9091. Je n'arrive pas à déterminer où cet URI est assigné. Une idée de pourquoi le serveur retournerait ceci?