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