HttpListener zamiast urządzenia w sieci lokalnej

0

Mam następującą sytuację:

  • Interfejs sieciowy 1 - Ethernet - IP: 192.168.100.1
  • Urządzenie sieciowe 1 - wpięte do sieci lokalnej - IP: 192.168.100.10
  • Proces 1 - klient wysyła request pod 192.168.100.99:8080/configuration
  • Proces 2 - aplikacja mockująca urządzenie sieciowe - nasłuchuje i powinna wysłać odpowiedź

Zamiast tego po stronie klienta otrzymuję wyjątek:

"There was no endpoint listening at 192.168.100.99:8080/configuration that could accept the message. This is often caused by an incorrect address or SOAP action. See InnerException, if present, for more details."
"Unable to connect to the remote server"
"No connection could be made because the target machine actively refused it 192.168.100.99:8080"

W Postmanie otrzymuję:

connect ECONNREFUSED 192.168.100.99:8080

W kodzie procesu 2 jest HttpListener, który wygląda mniej więcej tak:

var m_listener = new HttpListener();
m_listener.TimeoutManager.RequestQueue = TimeSpan.FromSeconds(30);
m_listener.Prefixes.Add(new Uri("192.168.100.99:8080/configuration").AbsoluteUri);
m_listener.Start();

            for (;;)
            {
                var context = await m_listener.GetContextAsync();
                await ProcessRequest(context);
            }

Jeśli jako prefix zamiast ip podaję "localhost" to requesty z postmana są przetwarzane prawidłowo.
Da się w ogóle coś takiego skonfigurować? Aby aplikacja 1 wykrywała tą drugą tak jakby była urządzeniem w sieci lokalnej?

1

W ustawieniach karty sieciowej we właściwościach na zakładce "Konfiguracja alternatywna" możesz sobie wpisać drugi adres IP pod którym będzie widziane Twoje urządzenie - o to chodzi? Tak naprawdę z konsoli możesz przypisać dowolnie wiele adresów do jednego komputera
http://woshub.com/assign-multiple-ip-addresses-single-nic-windows/

Możesz też w windowsie zainstalować wirtualny switch i podpinać do niego wirtualne maszyny, każda z innym adresem widzianym z zewnątrz. Nie wiem o co chodzi i na czym dokładnie polega problem.
Skoro podmiana adresu w listenerze rozwiązuje problem to czemu tego nie zrobisz? To normalne że testy mogą bić do innego adresu IP. W ogóle czemu ten adres IP jest zahardkodowany?

0

Może zrobić przekierowanie z 192.168.100.99:8080 np na localhost:8080 i tam postawić proces. Da się coś takiego skonfigurować w windowsie, albo inaczej?

0

Podejrzawam, że to jakiś szajs z firewallem Windowsa bo u kolegi działa i nie mam pojęcia dlaczego u mnie nie ;P

0

Jeśli on jest problemem to go wyłącz. Ja podekrzewam że to kwestia przekierowań

0
  1. Ustaw sobie testowo na chwilę inny port np. 8079 i zobacz czy zadziała. Jeżeli tak to masz już coś nasłuchującego na 8080. Jeżeli nie zadziała i długo czekało na odpowiedź to być może musisz ten port odblokować na firewallu.
0

Ok. Kolejna próba walki z firewall. Dodałem "inbound" i "outbount" na całą pulę adresów w podsieci i wszystkie porty.
Zresetowałem komputer i działa :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1