繁体   English   中英

禁用在 HttpWebRequests 之间重用 ServicePoint

[英]Disable Reusing ServicePoint between HttpWebRequests

我有一台具有多个公共 Ip 地址的机器。 我想发送 HTTP 请求,并手动控制 Source IP 地址。 为此,我使用 HttpWebRequest Class 并覆盖 req.ServicePoint.BindIPEndPointDelegate

theRequest.ServicePoint.BindIPEndPointDelegate = (s, ep, retries) => {
    return new IPEndPoint(IPAddress.Parse(SourceIp), 0);
};

这适用于单个请求,但在尝试将多个请求发送到具有不同源 IP 地址的同一域时失败。 BindIPEndPointDelegate 只调用一次(在第一个请求上),两个请求都使用第一个请求的源 IP。

经过一番研究,我找到了这个资源,指出如果方案和域相同,.Net 会重用 ServicePoints。 我不确定这是否是导致此问题的原因,但我找不到禁用此行为的方法。

帮助表示赞赏

解决方案是将 ServicePoint 属性的 MaxIdleTime 设置为 0。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM