У меня есть собственная служба WCF в приложении Windows Forms .Я собираюсь использовать его, чтобы портативное мобильное устройство могло взаимодействовать с приложением на базовом уровне.
Я включил BasicHttp (http://localhost:8080/tagservice/basic
), NetTCP (net.tcp://localhost:8888/tagservice
) и basicHttpMex какконечные точки.
В целях тестирования я настроил виртуальную машину в сети (и повторил их и на физической машине).
Все эти конечные точки работают на локальной машине, где служба
Однако при запуске WCFTestClient на удаленных машинах я получаю смешанные результаты.
- Используя указанные выше конечные точки, я могу подключиться к службе и увидеть контракты на обслуживание, подтверждающиеmex (IMetadataExhange) работает.Но я не могу использовать ни http, ни net.tcp.Я получаю сообщение об ошибке
Не удается подключиться к http://localhost:8080/tagservice/basic. Код ошибки TCP 10061: не удалось установить соединение, поскольку целевая машина активно отказала ему 127.0.0.1:8080.
Не удалось подключиться к net.tcp: // localhost: 8888 / tagservice.Попытка подключения длилась в течение промежутка времени 00: 00: 01.0014400.Код ошибки TCP 10061: не удалось установить соединение, поскольку целевая машина активно отказывала в этом 127.0.0.1:8888.
При изменении localhost на реальный IP-адрес в app.config на хосте, в данном случае 192.168.0.61.Базовый HTTP работает.Однако net.icp завершается с ошибкой
«Сервер отклонил учетные данные клиента.»
У меня два вопроса:
- Почемуnet.tcp не работает?Насколько я могу судить, у меня нет выбора для ввода учетных данных.
- Учитывая, что IP-адрес может измениться, как я могу заставить app.config использовать IP-адрес, назначенный ему DHCP-сервером?Когда программное обеспечение переходит из среды разработки в производственную среду, IP-адрес не может быть жестко закодирован, поскольку он изменится.