0

httpwebrequest を送信する VS2010 で簡単なアプリケーションを作成しました。設定を行わなくても、フィドラーはこのリクエストをキャプチャします。しかし、その後、VS2012 をインストールしてフィドラーを実行しました。リクエストを送信すると、「操作がタイムアウトしました」という例外が発生し、リクエストがキャプチャされません。フィドラーを閉じると、すべてのリクエストが送信されます。VS2012 と .net Framework 4.5 を削除します。その後、リクエストが送信され、フィドラーがそれらをキャプチャします。
.net4.5 がインストールされている場合、フィドラーがトラフィックをキャプチャしないのはなぜですか?

4

1 に答える 1

1

HttpWebRequestのHostプロパティを設定しようとしましたか? これが問題の原因である可能性があります。

私も .NET 4.5 をインストールしており、同じ状況を経験しています。フィドラーが実行されていて、プロキシとして機能しているときに同じエラーが発生します。エラーは次のとおりです。

System.Net.WebException: System.Net.HttpWebRequest.GetResponse() で操作がタイムアウトしました

問題を再現する簡単なサンプルを次に示します。

using System;
using System.IO;
using System.Net;

namespace WebRequestTest
{
    class Program
    {
        static void Main(string[] args)
        {
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://www.microsoft.com");
            request.Host = "www.microsoft.com";//If I comment this line, capturing with fiddler works OK.
            request.Method = "GET";
            request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:18.0) Gecko/20100101 Firefox/18.0";

            using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
            using (Stream stream = response.GetResponseStream())
            using (StreamReader sr = new StreamReader(stream))
            {
                string content = sr.ReadToEnd();
                Console.WriteLine(content);
            }
        }
    }
}

私の場合、そのrequest.Host="www.microsoft.com"行にコメントするだけで、すべて正常に機能しました。

フィドラー以外の HTTP プロキシを使用した場合も同じ動作が発生すると思われますが、テストしていません。

于 2013-02-17T10:12:56.127 に答える