У меня есть простой сервис WCF. По разным причинам вся конфигурация выполняется программно, а не в XML. Сервис самостоятельно. Когда я запускаю хост и клиент на своей локальной машине, он отлично работает. Это также прекрасно работает, когда я перемещаю хоста на другую машину на моей локальной сети. Однако, когда я пытаюсь добраться до хоста на любой машине, выходя за пределы моей локальной сети (то есть, используя WAN -адрес моего маршрутизатора вместо локального адреса локальной сети), он не работает, и я получаю ошибку ниже. Я пересылаю порт 8100 на моем маршрутизаторе на хост -машине службы. Я также очистил порт на принимающем брандмауэре, а также попытался полностью отключить брандмауэр. Нет радости в обоих. < /p>
Я использую TCP без безопасности, чтобы все было простым. Кто -нибудь может предложить, что может вызвать такое поведение? Спасибо. < /p>
(Примечание: я замаскировал адрес 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);
}
}
< /code>
мой класс хоста: < /p>
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();
< /code>
my inding: < /p>
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;
}
}
< /code>
Ошибка, которую я получаю, когда клиент пытается подключиться: < /p>
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.
< /code>
[edit] < /strong> < /p>
После борьбы с этим в течение нескольких дней мне наконец -то удалось отслеживать проблему с проблемой Loopback с моим маршрутизатором. Хотя я до сих пор не понял, почему, то, что происходит, хотя маршрутизатор настроен на порт, вызов от клиента не попадает на хост, когда я использую WAN -адрес. Будь то заблокировано «выходить на улицу» или «войти» через маршрутизатор, все еще загадка, но когда я запускаю клиента на другом компьюте>
Подробнее здесь: https://stackoverflow.com/questions/835 ... cf-service
Ошибка TCP (10060) при попытке подключиться к удаленной службе WCF ⇐ C#
Место общения программистов C#
-
Anonymous
1756137865
Anonymous
У меня есть простой сервис WCF. По разным причинам вся конфигурация выполняется программно, а не в XML. Сервис самостоятельно. Когда я запускаю хост и клиент на своей локальной машине, он отлично работает. Это также прекрасно работает, когда я перемещаю хоста на другую машину на моей локальной сети. Однако, когда я пытаюсь добраться до хоста на любой машине, выходя за пределы моей локальной сети (то есть, используя WAN -адрес моего маршрутизатора вместо локального адреса локальной сети), он не работает, и я получаю ошибку ниже. Я пересылаю порт 8100 на моем маршрутизаторе на хост -машине службы. Я также очистил порт на принимающем брандмауэре, а также попытался полностью отключить брандмауэр. Нет радости в обоих. < /p>
Я использую TCP без безопасности, чтобы все было простым. Кто -нибудь может предложить, что может вызвать такое поведение? Спасибо. < /p>
(Примечание: я замаскировал адрес 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);
}
}
< /code>
мой класс хоста: < /p>
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();
< /code>
my inding: < /p>
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;
}
}
< /code>
Ошибка, которую я получаю, когда клиент пытается подключиться: < /p>
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.
< /code>
[edit] < /strong> < /p>
После борьбы с этим в течение нескольких дней мне наконец -то удалось отслеживать проблему с проблемой Loopback с моим маршрутизатором. Хотя я до сих пор не понял, почему, то, что происходит, хотя маршрутизатор настроен на порт, вызов от клиента не попадает на хост, когда я использую WAN -адрес. Будь то заблокировано «выходить на улицу» или «войти» через маршрутизатор, все еще загадка, но когда я запускаю клиента на другом компьюте>
Подробнее здесь: [url]https://stackoverflow.com/questions/8359181/tcp-error-10060-when-trying-to-connect-to-remote-wcf-service[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия