C сервером оно соеденяеться через VPN канал.
У клиента есть два IP адреса (Глобальный (допустим 194.67.57.45), котрой ему выдал провайдер, и VPN (допустим 10.0.0.2) который ему выдал наш сервер).
Проблема заключается в слудющем, клиент подключается к серверу, по указаному IP (скажем 10.0.0.1) через VPN, а сервер пытается с клиентом общаться не через VPN, т.е. сервер отправляет данные на на наш IP (10.0.0.2) а на IP в интеренете (194.67.57.45). Но т.к. выход с севереа в инет закрыт, получается плохо Клиент шлет серверу данные, а сервер клиенту нет.
Схема:
Remoting конфигурируется чере config файлы:
Server:
<configuration>
<system.runtime.remoting>
<application name="TerminalServer">
<service>
<activated type="SkyLine.TerminalDB.DBProvider, TerminalDB"/>
</service>
<channels>
<channel ref="tcp" port="4001">
<clientProviders>
<formatter ref="binary" typeFilterLevel="Full"/>
</clientProviders>
<serverProviders>
<formatter ref="binary" typeFilterLevel="Full"/>
</serverProviders>
</channel>
</channels>
</application>
</system.runtime.remoting>
</configuration>
Client
<configuration>
<system.runtime.remoting>
<application name="RemotingClient">
<client url="tcp://10.0.0.1:4001">
<activated type="SkyLine.TerminalDB.DBProvider, TerminalDB"/>
</client>
<channels>
<channel ref="tcp" port="0">
<clientProviders>
<formatter ref="binary" typeFilterLevel="Full"/>
</clientProviders>
<serverProviders>
<formatter ref="binary" typeFilterLevel="Full"/>
</serverProviders>
</channel>
</channels>
</application>
</system.runtime.remoting>
</configuration>