WCF net.p2p:// - Могу ли я подключиться через порт, отличный от прослушивания?

У меня есть следующий код, который запускает службу WCF P2P:

private static readonly EndpointAddress EndpointAddress =
    new EndpointAddress("net.p2p://eigenein.Test.Wcf");
...
public void Start()
{
    NetPeerTcpBinding binding = new NetPeerTcpBinding();
    binding.Security.Mode = SecurityMode.None;
    ServiceEndpoint endpoint = new ServiceEndpoint(
        ContractDescription.GetContract(typeof(IChat)),
        binding, 
        EndpointAddress);
    endpoint.Behaviors.Add(new ProtoEndpointBehavior());
    host = new Chat();
    channelFactory = new DuplexChannelFactory<IChatChannel>(
        new InstanceContext(host), endpoint);
    channel = channelFactory.CreateChannel();
    channel.Open();
}

Как я понимаю, WCF автоматически определяет порт прослушивания и порт для подключения к другому узлу. Но могу ли я установить два отдельных порта для каждого узла: порт для прослушивания и конкретный порт для подключения к другому узлу? Что-то вроде:

private static readonly EndpointAddress SourceEndpointAddress =
    new EndpointAddress("net.p2p://eigenein.Test.Wcf:808");
private static readonly EndpointAddress TargetEndpointAddress =
    new EndpointAddress("net.p2p://eigenein.Test.Wcf:909");

То, чего я хочу достичь: разрешить партнерам подключаться через статические сопоставления портов NAT. Я не могу изменить эти отображения.

0 ответов

Другие вопросы по тегам