Mam usługę WCF, która akceptuje typ złożony i zwraca niektóre dane. Chcę użyć programu Fiddler, aby zobaczyć, jak wyglądają żądania przychodzące do usługi. Klient jest aplikacją konsoli .net, która używa serwera proxy odwołania do usługi. Czy to możliwe w przypadku Fiddlera. Jestem nowy w tym narzędziu i używałem go w przeszłości tylko do publikowania danych za pomocą narzędzia do tworzenia żądań.
107
Odpowiedzi:
Musisz to dodać do swojego pliku web.config
To wszystko, ale nie zapomnij usunąć linii web.config po zamknięciu skrzypka, ponieważ jeśli tego nie zrobisz, spowoduje to błąd.
Źródła: http://fiddler2.com/documentation/Configure-Fiddler/Tasks/UseFiddlerAsReverseProxy
źródło
http://
podałem adresu proxy. Cała reszta była taka sama, jak wspomniałeś.http://localhost/abc.svc
nahttp://HOSTNAME/abc.svc
Fiddler nasłuchuje żądań wychodzących, a nie żądań przychodzących, więc nie będziesz w stanie monitorować wszystkich żądań przychodzących do usługi za pomocą programu Fiddler.
Najlepsze, co uzyskasz dzięki Fiddler, to możliwość wyświetlenia wszystkich żądań generowanych przez aplikację konsolową (zakładając, że aplikacja generuje żądania internetowe, a nie korzysta z innego potoku).
Jeśli potrzebujesz narzędzia, które jest potężniejsze (ale trudniejsze w użyciu), które pozwoli ci monitorować WSZYSTKIE przychodzące żądania, powinieneś sprawdzić WireShark.
Edytować
Poprawiono mnie. Podziękowania dla Erica Law za opublikowanie wskazówek dotyczących konfiguracji programu Fiddler jako odwrotnego proxy !
źródło
Właśnie miałem ten problem, co zadziałało dla mnie, to użycie localhost.fiddler:
źródło
Konsolidacja zastrzeżeń wymienionych w komentarzach / odpowiedziach dla kilku przypadków użycia.
Przede wszystkim patrz http://docs.telerik.com/fiddler/Configure-Fiddler/Tasks/ConfigureDotNETApp
W aplikacji konsolowej może nie być konieczne określanie
proxyaddress
:W aplikacji internetowej / czymś hostowanym w usługach IIS należy dodać
proxyaddress
:HttpWebRequest
itp.), Zawsze omija serwer proxy Fiddler dla adresów URL zawierającychlocalhost
, więc musisz użyć aliasu, takiego jak nazwa komputera, lub wymyślić coś w pliku `` hosty '' (dlatego coś takiegolocalhost.fiddler
lubhttp://HOSTNAME
działa)Jeśli określisz
proxyaddress
, musisz usunąć go ze swojej konfiguracji, jeśli Fiddler nie jest włączony, lub wszelkie żądania, które wysyła Twoja aplikacja, będą zgłaszać wyjątek, taki jak:źródło
Tak proste, wszystko, czego potrzebujesz, to zmienić adres w kliencie konfiguracyjnym: zamiast `` localhost '' zmień nazwę komputera lub IP
źródło
Jest to proste, jeśli masz kontrolę nad klientem, który wysyła wiadomości. Wszystko, co musisz zrobić, to ustawić HttpProxy w klasie usług po stronie klienta.
Zrobiłem to na przykład, aby prześledzić klienta usługi sieciowej działającego na smartfonie. Ustawiłem serwer proxy na tym połączeniu po stronie klienta na adres IP / port programu Fiddler, który był uruchomiony na komputerze w sieci. Aplikacja na smartfony wysyłała następnie całą swoją komunikację wychodzącą do usługi internetowej za pośrednictwem programu Fiddler.
To działało doskonale.
Jeśli Twój klient jest klientem WCF, zobacz te pytania i odpowiedzi, aby dowiedzieć się, jak ustawić serwer proxy.
Nawet jeśli nie masz możliwości modyfikowania kodu aplikacji po stronie klienta, możesz mieć możliwość administracyjnego ustawienia serwera proxy, w zależności od stosu usług sieciowych używanych przez klienta.
źródło
Standardowe śledzenie / diagnostyka WCF
Jeśli z jakiegoś powodu nie możesz uruchomić programu Fiddler lub wolisz rejestrować żądania w inny sposób, inną opcją jest użycie standardowej funkcji śledzenia WCF. Stworzy to plik z ładną przeglądarką.
Dokumenty
Zobacz https://docs.microsoft.com/en-us/dotnet/framework/wcf/samples/tracing-and-message-logging
Konfiguracja
Dodaj następujące elementy do swojej konfiguracji, upewnij się, że
c:\logs
istnieje, odbuduj i wyślij żądania:źródło
Użyłem narzędzia Wire Shark do monitorowania wezwań serwisowych z aplikacji Silver Light w przeglądarce do serwisu. spróbuj link daje jasne informacje
Umożliwia monitorowanie całej zawartości zapytań i odpowiedzi.
źródło
Właśnie wypróbowałem pierwszą odpowiedź od Brada Rema i doszedłem do tego ustawienia w web.config w BasicHttpBinding:
Mam nadzieję, że to komuś pomoże.
źródło
Możesz użyć bezpłatnej wersji debugera HTTP.
To nie jest serwer proxy i nie musisz dokonywać żadnych zmian w pliku web.config.
Może również wyświetlać oba; przychodzące i wychodzące żądania HTTP. Darmowy debuger HTTP
źródło