失控HTTPWebRequest

时间:2010-01-15 18:05:22

标签: c# .net internet-explorer httpwebrequest bho

我有一个用C#编写的浏览器帮助程序对象,当用户单击Windows窗体上的按钮时,会向我的服务器发出HTTPWebRequest POST,在正常情况下这很有用。然而,每隔一段时间,我就会得到一个似乎疯狂的BHO,并不断向我发送大量的HTTPWebRequests(每分钟大约50到100)。我能够阻止行为让客户端重新启动PC的唯一方法,通常是用户甚至关闭了IE,但POST仍在继续。

使用HTTPWebRequest时有没有人见过类似的行为?看起来连接中的某些重试逻辑似乎很疯狂,但我认为HTTPWebRequest没有内置任何重试机制,所以这似乎不太可能。

我正在设置我的连接不正确,是否有一个很好的策略来防止这样的事情?

以下是我设置连接的方式:

ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;
HttpWebRequest webRequest = (HttpWebRequest)HttpWebRequest.Create(myUrl);
webRequest.Timeout = 30000;
webRequest.Method = "POST";
webRequest.KeepAlive = false;
System.Net.ServicePointManager.Expect100Continue = false;
webRequest.ContentType = "text/xml";
webRequest.ContentLength = myData.Length;

using (StreamWriter requestWriter = new StreamWriter(webRequest.GetRequestStream()))
{
    requestWriter.Write(this.myData);
    requestWriter.Close();
}

1 个答案:

答案 0 :(得分:0)

当发生这种情况时,您是否可以让客户从他的电脑上获得Wirehark跟踪?

是否还有其他一些托管IE控件的对象,这会导致您的BHO被托管并开始触发请求?

不幸的是,除非你能在你的机器上获得一个repro,否则它只会在黑暗中拍摄。