2012-12-21 2 views
7

Na zdalnej maszynie do kompilacji pojawia się następujący błąd po uruchomieniu testu urządzenia.Nie można połączyć się z net.tcp: Próba połączenia trwała przez pewien okres czasu

Metoda badania MyNameSpace1.MyNameSpace2.Service.Test.MyPath.XYZServiceTest.FindRecord wyrzucił wyjątek: System.ServiceModel.EndpointNotFoundException: nie może połączyć się z Net.TCP: //localhost/MyABCServices/XYZService.svc. Próba połączenia trwała przez okres czasu 00: 00: 02.0086605. Kod błędu TCP 10061: Nie można nawiązać połączenia, ponieważ komputer docelowy aktywnie odmówił jego użycia 127.0.0.1:808. ---> System.Net.Sockets.SocketException: Nie można nawiązać połączenia, ponieważ komputer docelowy aktywnie go odmówił 127.0.0.1:808

Mam bardzo ograniczony dostęp do tego komputera. Nie mam dostępu do iis na maszynie do budowania ani do usług podobnych do tego, które robię na mojej lokalnej maszynie programistycznej. Jednostka testuje działanie na mojej lokalnej maszynie deweloperskiej, ale uruchamia się do wspomnianego powyżej błędu na maszynie budującej.

Co mogę zrobić, aby usunąć błąd? Czytałem takie rzeczy jak sprawdzanie ogniowej ściany itp. Ale nie wiem jak to zrobić? Nie mogę sprawdzić, czy usługa Windows dla tej usługi działa i działa na komputerze kompilacji. Próbowałem zalogować się do maszyny budującej lub podłączyć mój IIS do tego zdalnego komputera, ale nie mogłem.

+5

Wiele osób powiedziałoby, że jeśli test jednostkowy ma dostęp do sieci lub bazy danych, to nie jest to test jednostkowy. –

+0

To naprawdę nie jest test jednostkowy, ale test systemowy, ale tego właśnie szuka większość ludzi, chociaż ludzie powinni robić jedno i drugie. Testy systemowe są lepsze niż brak testów. – Jonast92

Odpowiedz

8

Najczęstszym problemem dla mnie jest adapter nasłuchiwania Windows Service Net.Tcp nie jest uruchomiony na komputerze hostingowym.

Sprawdź również swoją aplikację internetową IIS, aby upewnić się, że protokoły włączone zawierają net.tcp. Na przykład kopalnia ma „http, Net.TCP” iw moich powiązań mam „http: : 94:, Net.TCP: 194:

nie wiem jakiejkolwiek dobrej drodze do zdalnego sprawdzenia, Usługi IIS są poprawnie skonfigurowane lub usługa Windows jest uruchomiona.Czy nie masz administratora serwera, który może spojrzeć na te wartości?

2

Czy 127.0.0.1:808 jest faktycznym adresem IP: Port zgłoszony w błędzie? Jeśli tak, to musisz naprawić IP (127.0.0.1 jest równoznaczne z localhost, więc to byłby twój lokalny komputer).

W przeciwnym razie wygląda to na problem z zaporą.

Istnieją dwa źródła firewall:

  • Router
  • OS

Router zapory są zwykle na routerze, który łączy się z siecią wewnętrzną do internetu. W takich przypadkach użytkownik (lub osoba z dostępem) będzie musiał zalogować się do routera i przekazać port do adresu IP urządzenia. Jest to wymagane tylko wtedy, gdy dwa komputery, które próbują się komunikować, nie znajdują się w tej samej sieci wewnętrznej.
Na przykład, jeśli komputer łączy się przez Internet z serwerem, wymagane jest skonfigurowanie przekierowania portów. Jeśli oba komputery znajdują się w tej samej sieci w tym samym biurze, przekazywanie portów nie jest wymagane (przypadki, w których nie jest to prawdą, są powszechne w większych firmach, ale jest też osoba informatyczna lub sieciowa, która poradzi sobie z problemami z portem).

Zakładając, że twój serwer działa z systemem Windows, będziesz potrzebować kogoś z dostępem administracyjnym (?) Do zalogowania się i albo otwórz port lub zezwól swojej usłudze na przyjmowanie przychodzących żądań. Ponieważ wskazałeś, że nie masz dostępu do serwera, sugerowałbym, aby osoby odpowiedzialne za serwer zweryfikowały konfigurację.

+0

Usługa WCF działa na komputerze kompilowanym, a test jednostki działa jak klient dla tej usługi. Obaj są na tej samej maszynie. Jest port, który blokuje żądanie przychodzące z testu urządzenia do usługi? w obrębie tej samej maszyny? Jakie pytania chciałbym zadać administratorowi? dzięki za pomoc. –

+0

Kiedy skonfigurowałem usługi w IIS na lokalnej maszynie dev .. W ogóle nie wpadłem na problem z firewallem? Zastanawiam się, jak/gdzie administrator maszyny budującej skonfigurował te ustawienia, które mogą mieć wpływ na test urządzenia, aby połączyć się z usługą. –

+0

@ dotnet-practitioner Jeśli zarówno serwer, jak i programy klienckie działają na tym samym komputerze, prawdopodobnie nie jest to problem z firewallem. Nie mogę zaoferować o wiele więcej pomocy, odpowiedź Erika Norena jest prawdopodobnie dobrym miejscem do rozpoczęcia. Inne opcje to uzyskanie dostępu do serwera i sprawdzenie odpowiednich ustawień. Ponieważ nie można uzyskać bezpośredniego dostępu do serwera, najlepszą opcją byłoby skonfigurowanie serwera testowego, do którego masz bezpośredni dostęp, i skonfigurowanie zadań do uruchomienia. – Trisped

1

Jak czytam, "test jednostki" oczywiście oczekuje punktu końcowego net.tcp WCF na pewnym adresie localhost. Tak więc, na które mogłeś pracować albo

  • dodać wymaganą usługę na serwerze budować, co może być wspólnym serwerze, lub należące do innego zespołu lub jakiś inny problem, nie jestem wtajemniczony lub
  • Zmień test jednostki, aby nie oczekiwał prawdziwej usługi WCF na żywo, ale fałszywej lub sfałszowanej.

Ja (oczywiście) polecam drugą alternatywę.

6

Starting the Net.Tcp Listener Adapter service has fixed the problem.

Uruchomienie usługi Net.TCP Listener Adapter został ustalony problem.

+1

Fantastyczne! Uratowałem moje życie! jesteś najlepsza! –

+0

Jesteś najlepszy, dziękuję za podzielenie się tym! Myślałem, że oszaleję. –