У меня есть служба Windows C++, открывающая интерфейс .Net Remoting для использования локальным клиентом, и все работает отлично до тех пор, пока IP-адрес не изменится.Изменение IP-адреса в службе .NET 2.0 Remoting прерывает новые клиенты от подключения
Поскольку я должен поддерживать .Net 2.0, переход на WCF не является вариантом.
Любые идеи о том, что я могу сделать?
Вот как настроить канал:
Hashtable^ dict = gcnew Hashtable();
dict["port"] = 9085;
dict["authenticationMode"] = "IdentifyCallers";
dict["impersonate"] = nullptr;
dict["secure"] = true;
dict["typeFilterLevel"] = "Full";
TcpServerChannel^ tcpChannel;
try
{
tcpChannel = gcnew TcpServerChannel(dict, nullptr);
}
catch (Exception^ e)
{
}
try
{
ChannelServices::RegisterChannel(tcpChannel, true);
}
catch (RemotingException^ RemoteException)
{
return FALSE;
}
catch (Exception^ e) { }
MyServiceProxy^ proxy = gcnew MyServiceProxy(m_pService);
RemotingServices::Marshal(proxy,"ServiceProxy");
Вот как я подключиться к этой службе с помощью C#
IDictionary dict = new Hashtable();
dict["port"] = 9085;
dict["name"] = "127.0.0.1";
dict["secure"] = true;
dict["tokenImpersonationLevel"] = "Impersonation";
dict["typeFilterLevel"] = "Full";
dict["connectionTimeout"] = 10000; // 10 seconds timeout
workChannel = new TcpClientChannel(dict, null);
try
{
ChannelServices.RegisterChannel(workChannel, true);
}
catch (System.Exception /*e*/)
{
}
string objectPath = "tcp://127.0.0.1:9085/ServiceProxy";
obj = (IMyService)Activator.GetObject(typeof(IMyService), objectPath);
Я имею в виду, когда компьютеры изменения IP-адреса. Итак, вот поток. Запустите службу, которая устанавливает канал, затем закройте крышку ноутбука, вернитесь домой, снова откройте его, получите новый IP-адрес, теперь, когда я пытаюсь запустить клиент, и он не может подключиться к службе.
.Net 2.0 более 10 лет, но у нас все еще есть клиенты, работающие на сервере 2003. – Iunknown
Некоторое уточнение о том, что «до изменения IP-адреса» означает, может быть полезно ... На самом деле нет никакого другого места, такого как 127.0.0.1 - не знаю, почему вы пытаетесь изменить это во что-то еще. –
Извините. Я имею в виду IP-адрес компьютеров. Итак, вот поток. Запустите службу, которая устанавливает канал, затем они закрывают крышку ноутбука, возвращаются домой, снова открывают его обратно, получают новую IP-аддонов, теперь клиент больше не может подключать сервисный канал. – Iunknown