我在客户端中使用 WebRequest 来使用 Internet 上的 Web 服务。每个请求都在单独的线程中触发。
如果在 IIS 中托管客户端,它会很好地工作。但是如果客户端托管在 Windows 服务中,大多数请求都会出现超时错误。
当我尝试使用 Fiddler 调试问题时,WebRequest 运行良好,所有流量都通过 127.0.0.1:8888
如果没有 Fiddler,流量直接通过随机端口进入 Internet,超时问题再次出现。
Windows 服务在本地系统帐户下运行。
如果客户端在 Windows 服务中而不使用代理,为什么我会超时?
更新:我最初的问题并不清楚。这些请求是同时发出的(或以非常短的间隔)。这与 ServicePoint 类中的连接限制有关。默认情况下,仅允许 2 个连接到同一个外部目标。如果目的地是本地的,则限制将是 int.Max 值。这就是为什么提琴手可以神奇地解决代理问题。所以我手动将 DefaultConnectionLimit 设置为 100,并且请求是在线的。