Сообщение Re[2]: .Net remoting и шлюз от 12.03.2015 12:02
Изменено 12.03.2015 12:06 Kostya33
Здравствуйте, Nikolay_Ch, Вы писали:
N_C>Здравствуйте, Kostya33, Вы писали:
K>>Насколько я понимаю, мне нужно передать на сервер IP клиента, но где в серверной части нужно производить замену обратного адреса?
N_C>На клиенте есть конфигурация, где указан IP-адрес сервера. Подмените IP-адрес в биндинге на клиенте для начала.
Не совсем понял о какой конфигурации идет речь.
у меня соединение с сервером устанавливается так:
ServerImpRemotingProxy — это объект который будет создан на стороне сервера. Слово Proxy пусть не смущает, это просто объект, который реализует мой интерфейс
N_C>Здравствуйте, Kostya33, Вы писали:
K>>Насколько я понимаю, мне нужно передать на сервер IP клиента, но где в серверной части нужно производить замену обратного адреса?
N_C>На клиенте есть конфигурация, где указан IP-адрес сервера. Подмените IP-адрес в биндинге на клиенте для начала.
Не совсем понял о какой конфигурации идет речь.
у меня соединение с сервером устанавливается так:
string uri = String.Format(@"tcp://{0}:{1}", ip, port);
RemotingConfiguration.RegisterActivatedClientType(typeof(ServerImpRemotingProxy), uri);
server = new ServerImpRemotingProxy();
ServerImpRemotingProxy — это объект который будет создан на стороне сервера. Слово Proxy пусть не смущает, это просто объект, который реализует мой интерфейс
Re[2]: .Net remoting и шлюз
Здравствуйте, Nikolay_Ch, Вы писали:
N_C>Здравствуйте, Kostya33, Вы писали:
K>>Насколько я понимаю, мне нужно передать на сервер IP клиента, но где в серверной части нужно производить замену обратного адреса?
N_C>На клиенте есть конфигурация, где указан IP-адрес сервера. Подмените IP-адрес в биндинге на клиенте для начала.
Не совсем понял о какой конфигурации идет речь.
у меня соединение с сервером устанавливается так:
ServerImpRemotingProxy — это объект который будет создан на стороне сервера. Слово Proxy пусть не смущает, это просто объект, который реализует мой интерфейс
Еще есть такой код
Он тоже работает, но в uri и так правильный адрес сервера, подменять там нечего
N_C>Здравствуйте, Kostya33, Вы писали:
K>>Насколько я понимаю, мне нужно передать на сервер IP клиента, но где в серверной части нужно производить замену обратного адреса?
N_C>На клиенте есть конфигурация, где указан IP-адрес сервера. Подмените IP-адрес в биндинге на клиенте для начала.
Не совсем понял о какой конфигурации идет речь.
у меня соединение с сервером устанавливается так:
string uri = String.Format(@"tcp://{0}:{1}", ip, port);
RemotingConfiguration.RegisterActivatedClientType(typeof(ServerImpRemotingProxy), uri);
server = new ServerImpRemotingProxy();
ServerImpRemotingProxy — это объект который будет создан на стороне сервера. Слово Proxy пусть не смущает, это просто объект, который реализует мой интерфейс
Еще есть такой код
Он тоже работает, но в uri и так правильный адрес сервера, подменять там нечего
public class NmsIpClientSinkProvider : IClientChannelSinkProvider
{
private IClientChannelSinkProvider _nextProvider = null;
private string _serverHostNameOrIp;
public NmsIpClientSinkProvider(string hostNameorIp)
{
if (String.IsNullOrEmpty(hostNameorIp))
throw new ArgumentNullException("hostNameorIp == null");
_serverHostNameOrIp = hostNameorIp;
}
public IClientChannelSink CreateSink(IChannelSender channel, string url, object remoteChannelData)
{
if (!url.Contains(_serverHostNameOrIp))
{
string oldIp = url.Substring(6).Remove(url.LastIndexOf(':') - 6);
url = url.Replace(oldIp, _serverHostNameOrIp);
}
IClientChannelSink nextSink = _nextProvider.CreateSink(channel, url, remoteChannelData);
return (new NmsClientChannelSink(nextSink, _serverHostNameOrIp));
}
public IClientChannelSinkProvider Next
{
get { return _nextProvider; }
set { _nextProvider = value; }
}
}