21

現在、HTTP GET呼び出しを行うVS2005で構築された古い(5年以上)Windowsサービスアプリケーションを置き換える作業を行っています。これを困難にするいくつかのことがあります(Webサーバーが顧客のネットワーク上にあり、直接接続できないなど)。残念ながら、実行中のシステムを停止してWinFormに置き換えることは避けたいと思います。 Fiddlerで監視できるバージョン。新しいコードはすべてを正しく実行しているように見えますが、残念ながら、認証に失敗しています。

WindowsサービスからのHTTP呼び出しをインターセプトするようにFiddler(2.2.9.1)を構成する方法はありますか?

4

5 に答える 5

38

Codekaは、私を正しい方向に導くための手がかりを提供してくれました。まだ欠けていたのは、プロキシを構成する方法でした。次のようなセクションを追加するように指定された<appname>.exe.config ニーズ:<defaultProxy>

<configuration>

    <!-- The `<system.net>` element is an immediate child of `<configuration>` but can appear anywhere in app.config -->
    <system.net>
        <defaultProxy enabled="true">
            <proxy proxyaddress="http://127.0.0.1:8888" bypassonlocal="False"/>
        </defaultProxy>
    </system.net>

</configuration>

これが行われると、WindowsサービスのhttpトラフィックがFiddlerを流れ始めました。

于 2010-05-27T15:42:10.883 に答える
5

FiddlerはHTTPプロキシとして機能するだけなので、サービスでプロキシを構成できる場合は、Fiddlerを経由するように構成できます。それが可能かどうかはわかりません...

それでも問題が解決しない場合は、2台目のコンピューターでFiddlerを実行し、ポート80でリッスンするように構成します。次に、「テスト」コンピューターで、代わりに2台目のコンピューターを指すようにhostsファイルを編集します。つまり、Webサービスがwww.example.comにあるとすると、「www.example.com」が2番目のコンピューター(Fiddlerを実行している)を指すようにテストサーバーを設定します。次に、サービスが「www.example.com」に接続すると、実際にはFiddlerに接続します。Fiddlerは、要求/応答を記録した後、接続を実際のwww.example.comに転送します。

私は上記をテストしていませんが、うまくいくと思います。もちろん、サービスでプロキシ設定を構成できれば、もっと簡単になります。

于 2010-05-27T00:33:41.863 に答える
3

.NETはlocalhostと127.0.0.1のプロキシをバイパスするため、テストするURLの代わりにマシン名をハードコーディングするだけです。

//myUrl = "http://127.0.0.1/myservice";
myUrl = "http://mymachine/myservice";
于 2012-08-28T08:25:16.627 に答える
3

そしてもちろん、Fiddlerが機能しない場合は、常にWiresharkがあります。ヒントとして、Wiresharkでいくつかのフィルターを使用して(たとえば、宛先IPに出入りするパケットのみを表示する)、データでオーバーランしているように感じないようにします。

于 2010-05-27T00:37:27.713 に答える
-1

注:重要:他の設定に関係なく、.NETはローカルホストを含​​むURLのFiddlerプロキシを常にバイパスします。したがって、localhostを使用するのではなく、マシン名を参照するようにコードを変更してください。例えば:

このURLはFiddlerには表示されません:

http://localhost/X509SignCodeService/X509SigningService.asmx このURLはFiddlerに表示されます。

于 2015-07-13T12:23:53.587 に答える