2011-01-16 19 views
35

Web uygulamamı geliştirirken IIS7 Express kullanıyorum. Bir sorunu araştırmak için kemancıyı kullanmam gerekiyor ve HTTP akışını alabilmem için bir şeyi nasıl yapılandıracağımı anlayamıyorum. Görünüşe göre, IIS7 ekspresyonu sadece yerel ana cihazda dinleyecektir, bu da akışa erişemediğim anlamına gelir.IIS7 Express ile Fiddler'ı Kullanma

cevap

52

Bu, IIS7 Express ile ilgili hiçbir şey yapmaz. geri döngü trafiği.

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

tıklayın Kurallar> Özelleştir kurallar. senin Kurallar şöyle dosyası

Güncelleme:

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

Sonra Sadece tarayıcınızda http://myapp ziyaret edin.

Veya http://localhost.fiddler/ adresini kullanın ve Fiddler bir IP adresine dönüştürmek yerine localhost ana bilgisayar adını kullanacaktır.

+0

Bunu okudum ve çalışmıyor. Bunun, IIS7 Express'in yalnızca localhost – Brettski

+3

'da kayıtlı olduğunu ve Hi Brettski, Brettski'nin doğru olduğunu ve IIS Express ile aynı sorunu bulduğunu düşünüyorum. Sadece "localhost" ana bilgisayar adı olan 127.0.0.1 trafiğini izlemiyor gibi görünüyor.Geçenlerde StackOverflow'da yayınladığım benzer bir sorunla karşılaştım http://stackoverflow.com/questions/4709014/using-custom-domains-with-iis-express –

+1

Görünüşe göre Yönetici Hakları altında çalışıyor olmalı ve içeri girin ve bağlantıları değiştirin. Cassini'nin bunu kolayca yapmasından dolayı bunun neden gerekli olduğunu anlamıyorum. Neden IIS Express, "localhost" ana bilgisayar üstbilgisi olmadan 127.0.0.1'deki bağlantı noktasını izleyemiyor. –

0

İstemciniz ve sunucu arasında kemancıyı vekil olarak kullanabilirsiniz. Bu, kemancıyı başlattığınız ve daha sonra fiddler bağlantı noktasını kullanarak sunucuya her zamanki bağlantı noktasından (fiddler2 varsayılanı 8888 bence) ulaştığınız anlamına gelir. Sunucuyu gerçek dünya istemcilerine karşı "canlı" hata ayıklamanız gerekirse, IIS bağlayıcısını 80'den başka bir şeye dönüştürebilir ve fidyenin vekilini bağlantı noktası 80'e yerleştirebilirsiniz.

DÜZENLEME: Bu arada, varsayılan olarak fiddler2 tarayıcınızdaki proxy ayarlarını değiştirir, böylece her neyse (her ne kadar kemanın yüklü olduğu makinede) fiddler yoluyla erişir.

9

Eric'in cevabının (Brett tarafından düzenlenen) bir yararlı varyasyonu, oSession.host'u oluşturmak için oSession.port kullanmak olacaktır. Bu küçük değişiklikle, http://localhost:12345 numaralı telefondan IIS express trafiğini yakalamak gerekirse, http://iisexpress:12345 kullanabilirler. Bu, WebMatrix ve VS tarafından oluşturulan rasgele bağlantı noktalarına sahip siteler için trafiğin yakalanmasını kolaylaştıracaktır. IE ve Firefox ile denedim ve IIS Express trafiğini yakalamak bir esinti oldu. Fiddler kayalar!

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

Ayrıca bunu eklemek isteyebilirsiniz: 'oSession.utilReplaceInResponse (" localhost: "+ oSession.port," iisexpress: "+ oSession.port);' – Gebb

3

Kemancı'nın en yeni sürümünde, yalnızca localhost.fiddler: bağlantı noktasına gitmeniz gerekir. Ancak, bunu tek başına yapmak bana yardımcı olmadı ve Windows Kimlik Doğrulaması'nı kullanırken hala erişim reddedildi. Kontrol \ lsa \ msv1_0

Değer Adı BackConnectionHostNames \ CurrentControlSet \

Anahtar Path HKEY_LOCAL_MACHINE \ SYSTEM: Kısacası http://www.parago.de/2013/01/fiddler-and-the-401-unauthorized-error-with-asp-net-web-api-using-integrated-windows-authentication-wia/

, bu anahtarı oluşturun: Bunu düzeltmek için, bu blog girişi bulunamadı

Değer Türü REG_MULTI_SZ

Dize Değer localhost.fiddler