web-dev-qa-db-ja.com

IIS7 ExpressでのFiddlerの使用

Webアプリケーションの開発中にIIS7 Expressを使用しています。問題を調査するためにフィドラーを使用する必要があり、HTTPストリームを取得できるように構成する方法を理解できません。 IIS7エクスプレスはローカルホストでのみリッスンするようです。つまり、ストリームにアクセスできません。

39
Brettski

これはIIS7 Expressとは関係がなく、ループバックトラフィックを使用しているという事実とは関係ありません。

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

[ルール]> [ルールのカスタマイズ]をクリックします。

次のようにルールファイルを更新します。

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

次に、ブラウザでhttp://myappにアクセスします。

または、アドレスhttp://localhost.fiddler/を使用すると、FiddlerはIPアドレスに変換する代わりにホスト名localhostを使用します。

55
EricLaw

(ブレットによって編集された)エリックの回答の有用なバリエーションの1つは、oSession.portを使用してoSession.Hostを構築することです。この小さな変更により、IIS http://localhost:12345の高速トラフィックをキャプチャする必要がある場合は、http://iisexpress:12345を使用できます。これにより、ランダムなサイトのトラフィックを簡単にキャプチャできます。 WebMatrixとVSによって作成されたポートです。IEとFirefoxで試してみましたが、IIS高速トラフィックは簡単でした。フィドラーはすごいです。

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; }
   //...
}
12
Jaro Dunajsky

Fiddlerの最新バージョンでは、localhost.fiddler:portに移動するだけで済みます。しかし、それだけでは役に立たず、Windows認証を使用しているときにアクセスが拒否されました。これを修正するために、次のブログエントリを見つけました: http://www.parago.de/2013/01/fiddler-and-the-401-unauthorized-error-with-asp-net-web-api- using-integrated-windows-authentication-wia /

つまり、次のキーを作成します。

キーパスHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0

値の名前BackConnectionHostNames

値のタイプREG_MULTI_SZ

String Valuelocalhost.fiddler

4
Thraka

クライアントとサーバーの間のプロキシとして、fiddlerを使用できます。つまり、fiddlerを起動し、通常のポートではなく、fiddlerのポートを使用してサーバーにアクセスします(fiddler2のデフォルトは8888だと思います)。サーバーの「ライブ」クライアントと実際のクライアントをデバッグする必要がある場合は、IISバインディングを:80から他のバインディングに変更し、ポート80にフィドラーのプロキシを配置します。

編集:ちなみに、デフォルトではfiddler2はブラウザのプロキシ設定を変更して、とにかく(fiddlerがインストールされているマシンでのみ)fiddlerを介してすべてにアクセスするようにします

0
sinelaw