0

我有以下问题,我使用 HttpWebRequest 从使用单声道的应用程序内部的 web 获取一些数据。应用程序还使用代理(未经身份验证的鱿鱼)。大多数请求都转到https://service.domain.com并且效果很好,但是当我尝试访问https://data.domain.com时,我得到 404 响应。

如果我交换请求并且第一个请求转到https://data.domain.com - 它可以工作,但是对https://service.domain.com的下一个请求将失败。

我只在带有 https 和代理的单声道上遇到这个问题。

有什么建议或解决方法吗?

4

1 回答 1

1

如果这是我上周(实际上是星期五)注意到的相同错误,我认为您会发现相同的 HttpWebRequest 对象(或支持连接对象 - 我从未检查过)正在被重用,但连接仍然存在打开旧服务器(在您的情况下为https://service.domain.com)并且新的 GET/POST 调用重新使用该连接,而不是像它应该的那样强制它连接到 data.domain.com 。

我解决它的方法是将第一台服务器的 KeepAlive 设置为 false(无论如何我只发出了 1 个请求),这样当我切换到第二台服务器时,它会强制重新连接(此时我将 KeepAlive 设置回 true) .

另一种方法可能是同时创建 2 个 Web 请求(每个服务器一个),这样它们就不会被重用。

我应该在星期五提交这个,但没有解决它,因为忘记了。你只是提醒了我,所以我只是提交了它:

https://bugzilla.xamarin.com/show_bug.cgi?id=7599

随意将自己添加到抄送列表中,并提供您认为我可能错过的任何其他信息。

于 2012-10-02T21:51:13.550 回答