2013-09-18 12 views
6

Mam usługę WCF za pomocą basicHttpBinding.Inicjalizacja WCF w sieci lokalnej zawiesza się na 20 sekund.

Gdy klient i serwer znajdują się w tej samej sieci, połączenie wstępne zawiesza się na około 30 sekund, a następnie przechodzi płynnie.

Kiedy robię to samo połączenie z klientem przez Internet z DNSem, to działa dobrze bez zawieszania się.

Klient i serwer to dwie aplikacje konsolowe. Na serwerze działa system Windows 7, a problematycznym klientem jest system Windows Server 2008. Oba komputery w tej samej sieci używają swoich lokalnych zasad zabezpieczeń, więc nie ma kontrolera domeny.

Wyłączenie wszystkich zapór i programów antywirusowych nie rozwiązało mojego problemu.

To jest log z instalacji z pola obok siebie

09:33:05,252 [1] DEBUG ChannelFactoryManager: Created ClientChannel http://192.168.1.11:18762/DiagnosticService 
09:33:05,263 [1] INFO Program: WcfAppender.InitializeWcfAppender: 08:33:05 
09:33:05,274 [1] INFO Program: File.Copy(C:temptest.txt, O:test.txt, true): 08:33:05 
09:33:05,298 [1] INFO Program: GETTING DomainFactory.LoggingDiagnosticService.GetMonitoringLevel: 08:33:05 
09:33:32,661 [1] INFO Program: GOT DomainFactory.LoggingDiagnosticService.GetMonitoringLevel: 08:33:32 
09:33:32,668 [1] INFO Program: GETTING DomainFactory.LoggingDiagnosticService.GetMonitoringLevel: 08:33:32 
09:33:32,680 [1] INFO Program: GOT DomainFactory.LoggingDiagnosticService.GetMonitoringLevel: 08:33:32 
09:33:32,693 [1] INFO Program: File.Copy(C:temptest.txt, O:test.txt, true): 08:33:32 

To jest log kiedy uderzę samego serwera za pośrednictwem Internetu od innej sieci (bez opóźnień):

09:36:56,500 [1] DEBUG ChannelFactoryManager: Created ClientChannel http://mydomain.com:18762/DiagnosticService 
09:36:56,501 [1] INFO Program: WcfAppender.InitializeWcfAppender: 08:36:56 
09:36:56,501 [1] INFO Program: File.Copy(C:temptest.txt, O:test.txt, true): 08:36:56 
09:36:56,501 [1] INFO Program: GETTING DomainFactory.LoggingDiagnosticService.GetMonitoringLevel: 08:36:56 
09:36:56,680 [1] INFO Program: GOT DomainFactory.LoggingDiagnosticService.GetMonitoringLevel: 08:36:56 
09:36:56,680 [1] INFO Program: GETTING DomainFactory.LoggingDiagnosticService.GetMonitoringLevel: 08:36:56 
09:36:56,705 [1] INFO Program: GOT DomainFactory.LoggingDiagnosticService.GetMonitoringLevel: 08:36:56 

Próbowałem również skopiować plik test.txt między polami, aby sprawdzić, czy dostaję ten sam problem z łącznością dla

+2

Mam bardzo podobny problem już dawno temu. Rozwiązaliśmy go, ustawiając proxy na wartość null. Czasami, jeśli nic nie ustawisz, połączenie spróbuje użyć domyślnego proxy sieciowego – Uwe

+2

useDefaultWebProxy = "false" rozwiązało problem. wielkie dzięki. powinieneś odpowiedzieć na nie jako odpowiedź, abym mógł to zaznaczyć. – Marek

Odpowiedz

5

Tego typu błąd może wystąpić maksymalnie gdy domyślne proxy jest zdefiniowany: Wyłącz użycie domyślnej-proxy, dodając to do app.config

<system.net> 
    <defaultProxy enabled="false" useDefaultCredentials="false"> 
     <proxy /> 
     <bypasslist /> 
     <module /> 
    </defaultProxy> 
</system.net> 

lub użyj useDefaultWebProxy = „false” :-) jak ty już powiedziałem w twoim komentarzu