У меня есть приложение, которое я написал, и оно работает хорошо уже 4 года.Вчера они переместили все свои серверы и установили около 60 ожидающих обновлений Windows, и теперь он сломан.Приложение использует удаленное взаимодействие для обновления некоторой информации на другом сервере (10.0.5.230), но когда я пытаюсь создать свой удаленный объект, я получаю следующее исключение: Сообщение об ошибке: не удается установить соединение, поскольку целевой компьютерактивно отказался 127.0.0.1:9091 http://img692.imageshack.us/img692/8104/screenshot1ay.png
Обратите внимание, что он пытается подключиться к 127.0.0.1, а не к соответствующему серверу.Сервер (10.0.5.230) прослушивает порт 9091, как и положено.Эта же ошибка происходит на всех трех терминальных серверах, где установлено это приложение.
Вот код, который регистрирует удаленный объект:
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 + "/");
}
Вот код, который вызывает удаленный объект:
UpdateClient lUpdater = new UpdateClient(Settings.CurrentSettings.Extension.ToString());
lUpdater.SetAgentState(false);
Я проверил, что следующий Register URI передан RegisterActivationClientType: "tcp: //10.0.5.230: 9091 /" Почему это приложение пытается подключиться к неправильному серверу?
Дополнительная информация:
Клиент подключается к серверу: он отправляет сообщение ConstructionCall на сервер и получает обратно ConstructionResponse.Этот ConstructionResponse содержит ObjRef, который ссылается на URI tcp: //127.0.0.1: 9091.Я не могу понять, где этот URI назначается.Любая идея, почему сервер вернет это?