web-dev-qa-db-ja.com

WebアプリケーションからのアウトバウンドHTTPリクエストをログに記録するにはどうすればよいですか?

私たちのアプリの1つは、最近別のURIに切り替えられたサードパーティのWebサービスを呼び出しています。これを調査して、古いアドレスが使用されている場所を確認する必要があります(コード/構成はすでに新しいアドレスに変更されています)。サーバーが行っているアウトバウンドHTTPリクエストをログに記録する迅速で軽量な方法はありますか?

そのASP.Netアプリケーションは、Windows 2008ServerでIIS 7。

4
5arx

サーバーに http://www.winpcap.org/windump/ をインストールし、次のフラグを付けて実行します。

windump -w "C:\ Temp\tcpdump.log" dstホスト{古いIPアドレス} dstポート80

ランニングを1日ほど続けてから、ログを確認できます。 -wを使用すると、生のパケットが書き出されるため、何が送信されているか(したがって、何が送信されているか)を正確に確認できます。

Windumpのベースとなるプログラムであるtcpdumpのみを使用しているため、両者に違いがある場合は、フラグを調整する必要がある場合があります。しかし、正しい方向に導くために、そこにはたくさんのtcpdumpチュ​​ートリアルがあります。

2
David Bishop

wireshark! ルール!!!これは、Davidビショップが上記で提案したもののGUIバージョンに相当します^^^^^

ただし、Windowsツールとより統合したい場合は、関連するローカルプロセスも列挙します。これには、Microsoftから無料の sysinternal tools があります。

具体的には TCPView を使用して、どのプロセスがどのリモートホストに接続されているかを確認できます。 (ただし、その機能が最近追加されていない限り、接続を要求URLに一致させるには、windumpまたはwiresharkにフォールバックする必要があります)

これらすべての要求を何らかのファイルに記録する場合は、Tcpvconコマンドラインバージョンもあります。しかし、これはファイルへのパケットダンプを長期間実行するのと同じ考慮事項を持っていると思います。ディスクをいっぱいにしないでくださいそしてクラッシュすることに注意してください完全に箱。

1
Tom H

残念ながら、私はASP.Netの経験がありませんが、これを追跡できるラウンドアバウトの方法を提供できます。問題のサーバーの前でSquidを実行している場合、Squidログをざっと見て、間違ったURIに対して行われた要求を特定するのは非常に簡単です。この理由から、Squidボックスをインストールすることはお勧めしませんjustですが、Squidプロキシが既に配置されている場合は、おそらくこれが誤ったURIを識別する最も簡単な方法です。

0
Richard Keller