2012-08-23 11 views
8

Mam aplikację systemu Windows, która łączy się z usługą danych WCF hostowaną na tym samym komputerze.Dlaczego usługa danych WCF działa lepiej podczas pracy Fiddlera?

Pierwszą rzeczą, która pojawia się po uruchomieniu aplikacji, jest zapytanie, które zwraca od 0 do 3 wyników. Oto kod:

var environments = ctx.Environments 
.AddQueryOption("$filter", "Environment eq '" + ConfigurationManager.AppSettings["environment"] + "'") 
.AddQueryOption("$expand", "Departments, SecurityGroups"); 

Bardzo Następną rzeczą mogę zrobić, to sprawdzić, czy (environments.Count() == 0), które trwa około 10 sekund, aby ocenić. Po raz pierwszy wydaje się najwolniejsza, ale zawsze trwa dłużej niż 6 sekund. Jeśli jednak używam Fiddlera, zawsze otrzymuję natychmiastowe wyniki.

Dlaczego działa Fiddler przyspiesza działanie?

+0

Fiddler nie powinien mieć żadnych skutków ubocznych w aplikacji. Powinieneś przeprowadzić śledztwo w kilku innych miejscach. – DarthVader

+0

@DarthVader: Ja też tak bym nie pomyślał, a szczególnie nie spodziewałbym się wzrostu wydajności przy jego uruchomieniu. Niemniej jednak tak się dzieje. – DarLom

+0

dlaczego nie debugujesz aplikacji i nie wiesz, co powoduje opóźnienie? i debugowanie podczas działania skrzypka. Zobacz różnicę. – DarthVader

Odpowiedz

0

Doceniam wszystkie odpowiedzi, ale w końcu wydaje się, że coś jest nie tak z moim środowiskiem rozwojowym VS 2010. Byłem w stanie poradzić sobie z powolną pierwszą reakcją, utrzymując działanie Fiddlera, ale po zainstalowaniu zestawu kontrolek Telerik, moje aplikacje zabierały prawie minutę na załadowanie formularza podczas debugowania. Podejrzewając, że jest to związane z innym problemem, zainstalowałem VS 2012 i zaktualizowałem swoje projekty, a teraz wszystko działa zgodnie z oczekiwaniami.

Jeszcze raz dziękuję za odpowiedzi.

0

Zgodnie z sugestią firmy Weismat mogą to być problemy z DNS. Jeśli używasz nazw DNS w swoim adresie URL WCF, spróbuj użyć IP pętli zwrotnej (127.0.0.1) lub lokalnego adresu IP.

1

Po uruchomieniu skrzypka działa jako proxy dla wszystkich połączeń sieciowych, prawda? Więc prawdopodobnie ten serwer proxy reaguje szybciej niż prawdziwy host DNS. Jaki jest czas połączenia ustawiony w konfiguracji powiązania?