У меня проблема с .NET Remoting (VB 2010). Я сделал клиент-серверное приложение, которое отлично работает в локальной сети. Когда я запускаю клиента за пределами локальной сети, я получаю пустой объект или сообщение об ошибке: «Попытка подключения не удалась, потому что подключенная сторона не ответила должным образом 192.168.5.60:9100».
У меня есть правило NAT на маршрутизаторе, и брандмауэр Windows не блокирует приложение ни с одной стороны. Проблема в том, что с клиента, который я подключаюсь к общедоступному IP-адресу, маршрутизатор перенаправляет на сервер. Затем в следующий раз, когда клиент вызовет локальный IP-адрес сервера, который является другой сетью, и соединение не будет выполнено, что приведет к указанной выше ошибке. Почему клиент подключается к локальному IP-адресу сервера при последующих вызовах? Может ли кто-нибудь помочь мне решить эту проблему. У меня нет файлов app.config на обоих концах. Изменить: у меня нет сервера брандмауэра, просто обычная настройка ROUTER> SERVER (LAN).
Код клиента:
Dim URI as string = " tcp://109.120.24.82:8100/FTObj"
RemotingConfiguration.CustomErrorsMode = CustomErrorsModes.Off
tcpChannel = New Tcp.TcpChannel(9100)
ChannelServices.RegisterChannel(tcpChannel, False)
Dim FTFactoryObj As IFTFactory.IFTFactory = DirectCast(Activator.GetObject(GetType(IFTFactory.IFTFactory), URI), IFTFactory.IFTFactory)
IFTObjC = FTFactoryObj.createFTObj
Код сервера:
tcpChannel = New Tcp.TcpChannel(9100)
ChannelServices.RegisterChannel(tcpChannel, False)
RemotingConfiguration.RegisterWellKnownServiceType(GetType(FTFactory.FTFactory), FTConfig.ServerAppObject, WellKnownObjectMode.Singleton)