0

我有一个用 C# 编写的 Browser Helper 对象,当用户单击 Windows 窗体上的按钮时,它会向我的服务器发出 HTTPWebRequest POST,在正常情况下,这很好用。然而,每隔一段时间,我就会收到一个似乎发疯的 BHO,并不断向我发送大量 HTTPWebRequest(每分钟大约 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();
}
4

1 回答 1

0

发生这种情况时,您可以让客户端从他的 PC 获取 Wireshark 跟踪吗?

是否存在托管 IE 控件的其他对象,从而导致您的 BHO 被托管并开始触发请求?

不幸的是,除非你能在你的机器上得到一个复制品,否则它只是在黑暗中拍摄。

于 2010-01-15T19:57:24.367 回答