Web アプリケーションの開発中に IIS7 Express を使用しています。問題を調査するためにフィドラーを使用する必要があり、HTTP ストリームを取得できるように構成する方法がわかりません。IIS7 Express は localhost でのみリッスンするようです。つまり、ストリームにアクセスできません。
4 に答える
これは IIS7 Express とは関係なく、ループバック トラフィックを使用しているという事実にすべて関係しています。
参照: https://www.fiddlerbook.com/fiddler/help/hookup.asp#Q-LocalTraffic
[ルール] > [ルールのカスタマイズ] をクリックします。
Rules ファイルを次のように更新します。
static function OnBeforeRequest(oSession:Fiddler.Session)
{
if (oSession.HostnameIs("MYAPP")) { oSession.host = "localhost:portnumber"; }
}
次に、http://myapp
ブラウザでアクセスします。
または、アドレスを使用するhttp://localhost.fiddler/
と、Fiddler はlocalhost
IP アドレスに変換する代わりにホスト名を使用します。
Eric の回答 (Brett によって編集されたもの) の便利なバリエーションの 1 つはoSession.port
、oSession.host
. この小さな変更により、 で IIS Express トラフィックをキャプチャする必要がある場合はhttp://localhost:12345
、 を使用できますhttp://iisexpress:12345
。これにより、WebMatrix と VS によって作成されたランダム ポートを持つサイトのトラフィックをキャプチャしやすくなります。IE と Firefox で試してみたところ、IIS Express トラフィックのキャプチャは簡単でした。フィドラーロック!
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; }
//...
}
最新バージョンの 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
文字列値localhost.fiddler
クライアントとサーバー間のプロキシとして fiddler を使用できます。これは、フィドラーを起動し、通常のポートではなくフィドラーのポートを使用してサーバーにアクセスすることを意味します(フィドラー2のデフォルトは8888だと思います)。サーバーの「ライブ」と実際のクライアントをデバッグする必要がある場合は、IIS バインディングを :80 から別のものに変更し、フィドラーのプロキシをポート 80 に配置できます。
EDIT:ちなみに、デフォルトでは、fiddler2はブラウザのプロキシ設定を変更して、とにかくfiddlerを介してすべてにアクセスするようにします(fiddlerがインストールされているマシンのみ)