2011-01-16 9 views
35

Używam IIS7 Express podczas rozwijania mojej aplikacji internetowej. Muszę użyć skrzypka, aby zbadać problem i nie mogę wymyślić, jak skonfigurować rzeczy, aby uzyskać strumień HTTP. Wygląda na to, że ekspres IIS7 będzie nasłuchiwać tylko na localhost, co oznacza, że ​​nie mam dostępu do strumienia.Używanie Skrzypka z IIS7 Express

Odpowiedz

52

To nie ma nic wspólnego z IIS7 Express i wszystko, co należy zrobić z tym, że używasz ruch w pętli zwrotnej.

Ref: https://www.fiddlerbook.com/fiddler/help/hookup.asp#Q-LocalTraffic

Kliknij Reguły> Dostosuj zasad.

Aktualizacja pliku reguły tak:

static function OnBeforeRequest(oSession:Fiddler.Session) 
{ 
    if (oSession.HostnameIs("MYAPP")) { oSession.host = "localhost:portnumber"; } 
} 

Następnie wystarczy odwiedzić http://myapp w przeglądarce.

Lub użyj adresu http://localhost.fiddler/, a Fiddler użyje nazwy hosta localhost zamiast konwertować na adres IP.

+0

Przeczytałem to i nie działa. Zakładam, że to dlatego, że IIS7 Express słucha tylko na localhostu – Brettski

+3

Hi Eric i Brettski, Brettski ma rację, faktycznie znalazłem ten sam problem z IIS Express. Wydaje się, że monitoruje tylko nazwę hosta "localhost", a nie ruch do 127.0.0.1.Miałem podobny problem, o którym pisałem na temat StackOverflow ostatnio http://stackoverflow.com/questions/4709014/using-custom-domains-with-iis-express –

+1

Podobno musi działać na prawach administratora i musisz wejdź i zmodyfikuj wiązania. Nie rozumiem, dlaczego jest to konieczne, ponieważ Cassini łatwo to robi. Dlaczego program IIS Express nie może po prostu monitorować portu w wersji 127.0.0.1 bez nagłówka hosta "localhost". –

0

Możesz używać skrzypka jako proxy między klientami a serwerem. Oznacza to, że uruchamiasz skrzypce, a następnie uzyskujesz dostęp do serwera za pomocą portu skrzypka zamiast zwykłego portu (domyślnie dla skrzypka 2 jest chyba 8888). Jeśli chcesz debugować serwer "na żywo" w porównaniu do rzeczywistych klientów, możesz zmienić powiązanie IIS z: 80 na coś innego i umieścić serwer proxy skrzypka na porcie 80.

EDYCJA: Przy okazji, domyślnie fiddler2 zmienia ustawienia proxy w twoich przeglądarkach, tak aby uzyskać dostęp do wszystkiego przez skrzypek i tak (na komputerze, w którym zainstalowany jest tylko skrzypek)

9

Jedną z przydatnych odmian odpowiedzi Erica (edytowanej przez Bretta) byłoby użycie oSession.port do zbudowania oSession.host. Przy tak niewielkiej zmianie, jeśli trzeba przechwycić ruch ekspresowy IIS pod numerem http://localhost:12345, mogą one korzystać z http://iisexpress:12345. Ułatwi to przechwytywanie ruchu w witrynach z losowymi portami utworzonymi przez WebMatrix i VS. Wypróbowałem go z IE i Firefoxem, a przechwytywanie ruchu IIS Express było proste. Fiddler rocks !.

static function OnBeforeRequest(oSession:Fiddler.Session) 
{ 
    //... 
    // workaround the iisexpress limitation 
    // URL http://iisexpress:port can be used for capturing IIS Express traffic 
    if (oSession.HostnameIs("iisexpress")) { oSession.host = "localhost:"+oSession.port; } 
    //... 
} 
+0

Możesz również dodać: 'oSession.utilReplaceInResponse (" localhost: "+ oSession.port," iisexpress: "+ oSession.port);' – Gebb

3

Z najnowszą wersją skrzypka, wystarczy przejść do localhost.fiddler: port. Jednak samo to nie pomogło mi i wciąż otrzymywałem odmowę dostępu podczas korzystania z uwierzytelniania systemu Windows. Aby rozwiązać ten problem, znalazłem ten wpis blogu: http://www.parago.de/2013/01/fiddler-and-the-401-unauthorized-error-with-asp-net-web-api-using-integrated-windows-authentication-wia/

w skrócie, tworzenia tego klucza:

ścieżkę klucza HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Lsa \ MSV1_0

Wartość Nazwa BackConnectionHostNames

Wartość Typ REG_MULTI_SZ

Wartość ciągu znaków localhost.fiddler