Ошибка TCP (10060) при попытке подключения к удаленной службе WCFC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Ошибка TCP (10060) при попытке подключения к удаленной службе WCF

Сообщение Anonymous »

У меня есть простой сервис WCF. По разным причинам вся конфигурация выполняется программно, а не в xml. Сервис размещен на собственном хостинге. Когда я запускаю хост и клиент на своей локальной машине, все работает отлично. Это также отлично работает, когда я перемещаю хост на другой компьютер в своей локальной сети. Однако когда я пытаюсь подключиться к хосту на любой машине, выйдя за пределы моей локальной сети (т. е. используя адрес WAN моего маршрутизатора вместо адреса локальной сети), это не работает, и я получаю следующую ошибку. Я пересылаю порт 8100 на своем маршрутизаторе на хост-компьютер службы. Я также очистил порт на брандмауэре хоста и попытался полностью отключить брандмауэр. Никакой радости от обоих.

Я использую TCP без защиты, чтобы упростить задачу. Может ли кто-нибудь подсказать, что может быть причиной такого поведения? Спасибо.

(Примечание: в приведенном ниже коде я замаскировал адреса WAN и LAN.)

Мой клиентский класс:

Код: Выделить всё

public class TrackingClient : IService
{
protected readonly Binding binding;
protected readonly EndpointAddress endpointAddress;
IService proxy;

public TrackingClient()
{
this.binding = new TCPBinding();
this.endpointAddress = new EndpointAddress("net.tcp://WAN_IP:8100/Tracking");

proxy = ChannelFactory.CreateChannel(
binding,
endpointAddress);
}

public bool report(Payload payload)
{
return proxy.report(payload);
}
}
Мой хост-класс:

Код: Выделить всё

        ServiceHost host = new ServiceHost(typeof(Service));
host.AddServiceEndpoint(
typeof(IService),
new TrackingComm.TCPBinding(),
"net.tcp://LAN_IP:8100/Tracking");

host.Open();
Console.WriteLine("=== TRACKING HOST ===");
Console.ReadLine();
host.Close();
Моя привязка:

Код: Выделить всё

public class TCPBinding : NetTcpBinding
{
public TCPBinding()
{
Security.Mode = SecurityMode.None;
Security.Transport.ClientCredentialType = TcpClientCredentialType.None;
Security.Transport.ProtectionLevel = System.Net.Security.ProtectionLevel.None;
Security.Message.ClientCredentialType = MessageCredentialType.None;
}
}
Ошибка, которую я получаю, когда клиент пытается подключиться:

Код: Выделить всё

Could not connect to net.tcp://WAN_IP:8100/. The connection attempt lasted for a time span of 00:00:21.0772055. TCP error code 10060: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond WAN_IP:8100.
[EDIT]

После нескольких дней борьбы с этим мне наконец удалось чтобы отследить проблему, связанную с проблемой обратной связи с моим маршрутизатором. Хотя я до сих пор не понял почему, происходит следующее: хотя маршрутизатор настроен на перенаправление порта, вызов от клиента не доходит до хоста, когда я использую адрес WAN. Блокируется ли он «выходом» или «входом» через маршрутизатор, до сих пор остается загадкой, но когда я запускаю клиент на другом компьютере физически за пределами моей локальной сети, он работает нормально

Подробнее здесь: https://stackoverflow.com/questions/835 ... cf-service
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Ошибка TCP (10060) при попытке подключиться к удаленной службе WCF
    Anonymous » » в форуме C#
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Веб-API ASP.NET Core для удаленной службы WCF .NET Framework net.tcp
    Anonymous » » в форуме C#
    0 Ответы
    37 Просмотры
    Последнее сообщение Anonymous
  • .NET Core Web API для удаленной службы WCF ASP.NET Framework net.tcp
    Anonymous » » в форуме C#
    0 Ответы
    47 Просмотры
    Последнее сообщение Anonymous
  • Почему я получаю исключение (код ошибки TCP 10061) при попытке установить связь между двумя приложениями с помощью WCF?
    Anonymous » » в форуме C#
    0 Ответы
    29 Просмотры
    Последнее сообщение Anonymous
  • Почему я получаю исключение (код ошибки TCP 10061) при попытке установить связь между двумя приложениями с помощью WCF?
    Anonymous » » в форуме C#
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»